sveni2211 Posted April 27, 2019 Posted April 27, 2019 Hallo. Ich wollte mich mal an einem eigenen Plugin versuchen. Als Informations-Quelle habe ich die DVBViewer Plugin SDK Hilfedatei und das Beispielprojekt "myPrograms". Will in dem Plugin eigentlich nur ein paar statistische Informationen zum TS Stream abfassen für den Anfang. Als Typ "Plugin". Nicht per COM auf den DVBViewer selbst zugreifen oder so. Benutze dafür Delphi 10.3.1. Habe mir ein DLL Projekt erstellt (32 Bit) und folgende Funktionen exportiert: - Copyright - Version - LibTyp - PluginName - SetAppHandle - EventMsg - SetMenuHandle - MenuItemClick - Execute - PidCallback Die ersten 4 Funktionen geben auch Daten zurück. Jetzt habe ich die DLL mal in das DVBViewer Plugins Verzeichnis gepackt. Den DVBViewer gestartet und mit dem Process Explorer (aktuelle Version) geschaut, was für DLL geladen werden. Meine DLL ist dabei nicht zu sehen. Nehme ich den "DLL Explorer" und schaue mir z.B. die Universal.dll aus dem Plugins-Verzeichnis an und meine DLL, sind die korrekten Exports da (meiner fehlen natürlich die Imports und der Universal die Stream-bezogenen Funktionen). Habe dann testweise mal "myPrograms" compiliert und in Plugins gelegt - auch diese ist im Process Explorer nicht zu finden. Sie scheinen nicht geladen zu werden. Woran kann das liegen? Was mache ich falsch? Kann es am Compiler liegen? Brauche ich eventuell ein sehr viel älteres Delphi? Quote
Griga Posted April 27, 2019 Posted April 27, 2019 Anhand des Quellcodes ließe sich das besser beurteilen... Wenn du eine Delphi-Version verwendest, die standardmäßig mit Unicode (UTF-16) Strings arbeitet, gibt es einen Fallstrick. Dann musst du nämlich explizit statt PChar PAnsiChar verwenden, sonst passt das nicht: function LibTyp: PAnsiChar; stdcall; begin result := 'Plugin'; end; Quote
sveni2211 Posted April 28, 2019 Author Posted April 28, 2019 Hi. Vielen Dank. Genau das war es. Seit D2009 ist ja standardmäßig Unicode aktiv. Deswegen ging auch das selbst compilierte Beispiel von hier nicht. An Unicode hatte ich nichtgedacht - zuviel in C# gearbeitet in letzter Zeit. Danke. Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.