Seite 1 von 1
Probleme bei der Pluginprogrammierung
Verfasst: 10.08.2010, 12:58
von Andreas
Moin Moin,
ich versuche gerade mit dem C++ SDK ein Ausgabeplugin für das SLESA-IP Ethernet Interface zu programmieren.
Leider habe ich gleich am Anfang ein Problem. Ich habe das C++ SDK entpackt und, nackig wie es ist, kompiliert. Das funktioniert auch. Wenn ich aber die entstandene DLL im Plugintester ausprobiere und z.B. den Knopf DLLAvtivate drücke erhalte ich eine Fehlermeldung "Zugriffsverletzung bei Adresse 0. Lesen von Adresse 0".
Muss ich evtl. noch etwas beim Compilieren beachten?
Re: Probleme bei der Pluginprogrammierung
Verfasst: 11.08.2010, 08:32
von Christian
Hi Andreas,
vermutlich ist das SDK nicht mehr auf dem aktuellsten Stand. Seit Version 5 des PC_DIMMERs hat sich die Aufrufkonvention von DLLActivate ein wenig verändert. Dort werden nun einige Pointer ausgetauscht um Callbackfunktionen zu ermöglichen, die die Kanalwertsteuerung zwischen Plugin und Hauptprogramm regeln. Ich suche heute Abend die aktuelle Konfiguration der Funktionen heraus und poste sie hier. Wäre toll, wenn du das SDK ein wenig auffrischen und mir wieder zukommen lassen könntest.
vielen Dank und bis später,
Christian
Re: Probleme bei der Pluginprogrammierung
Verfasst: 11.08.2010, 09:18
von Andreas
Ich habe mich nochmal an das erste Semester Programmieren zurück erinnert und mit
die Funktionen nach außen hin sichtbar gemacht, nun funktioniert es soweit.
Den fertigen Code kann ich dir gerne geben, wenn ich soweit bin.
Kann ich in einem Inputplugin betimmte Scenen triggern? Und hast du eine Doku zu deinem Programm?
Re: Probleme bei der Pluginprogrammierung
Verfasst: 11.08.2010, 09:25
von Christian
Hi zurück,
schön, dass es nun funktioniert. Nun, du kannst über die Systemnachrichten einige Funktionen des Hauptprogramms verwenden. Darunter: Szenenverwaltung aufrufen und eine ausgewählte Szene als ID (GUID) zurückbekommen. Über diese ID kannst du dann Szenen aufrufen, bearbeiten und löschen. Somit kann man auch eigene Playlists und ähnliches programmieren.
Eine Doku gibt es leider noch nicht, da bislang lediglich zwei Personen ein Plugin schreiben wollten (mag vielleicht auch an der mangelnden Doku liegen *g*). Bitte stell einfach ein paar Fragen und ich werde sie beantworten und parallel eine kleine PDF für das SDK vorbereiten.
bis dann,
Chris
Re: Probleme bei der Pluginprogrammierung
Verfasst: 16.08.2010, 10:21
von Andreas
Ich hab das Plugin nun soweit, dass es im Plugintester problemlos funktioniert.
Wenn ich das Plugin aber im Hauptprogramm auswähle und anschließend einen Schieberegler für einen Kanal verändere stürzt das Programm komplett ab.
Ich hatte versucht das PC_DIMMER SDK herunter zu laden. Leider erhalte ich nur eine 0kb große ZIP Datei. Magst du mir deinen Quellcode zukommen lassen? Dann kann ich evtl das eine oder andere besser nachvollziehen.
Re: Probleme bei der Pluginprogrammierung
Verfasst: 16.08.2010, 10:31
von Christian
Hallo,
ich habe den Sourcecode leider gerade nicht greifbar. Ich schicke dir die Infos heute Abend zu. Du kannst mir ja mal eine Version deines Plugins zuschicken, damit ich das selber testen kann. Schick mir da auch mal den Quellcode mit - vielleicht finde ich ja auf Anhieb was.
bis dann,
Christian
Re: Probleme bei der Pluginprogrammierung
Verfasst: 16.08.2010, 12:51
von Andreas
Hier das noch relativ nackte Plugin.
Im Grunde habe ich das C++ SDK nur um die oben beschriebene dllexports erweitert und __sdtcall aus den Funktionsköpfen entfernt.
Re: Probleme bei der Pluginprogrammierung
Verfasst: 16.08.2010, 18:00
von Christian
Hi,
die Funktion "DLLSendData" muss bei Data ein großes "D" haben. Das hab ich damals wohl bereits falsch geschrieben. Dummes CaseSensitive-Zeuch. Vermutlich ist das das Problem.
Zudem muss die Callback-Funktion "cbSetDLLValues" folgende Übergabeparameter haben:
Code: Alles auswählen
typedef void (__stdcall cbSetDLLValues) (int address, int startvalue, int endvalue, int fadetime, int delay) ;
Somitmuss hinten noch ein int delay eingefügt werden.
Ich habe die aktuellen Funktionsdefinitionen hier einmal ergänzt:
http://www.pcdimmer.de/index.php/pcdimm ... ntwicklung
anbei auch die korrigierte cpp-Datei. Leider kann ich sie nicht kompilieren um es zu testen.
bis dann,
Christian
Re: Probleme bei der Pluginprogrammierung
Verfasst: 19.08.2010, 13:39
von Andreas
Manchmal sind die Lösungen doch einfacher als gedacht.
Die .def Datei musste dem Linker bekannt gegeben werden. Dadurch entfallen auch die dllexports und alles funktioniert wie es soll.
Nun kann ich endlich mit dem richtigen Programmieren anfangen
