Autor Beitrag
mb
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 185



BeitragVerfasst: Mo 20.10.03 15:44 
Hallo!

Ich möchte Funktionen aus einer eigenen DLL nicht aus einer Delphi-Anwendung heraus sondern per rundll32.exe aufrufen. Wie geht das? Ich hatte bei meinen Versuchen keinen Erfolg.

_________________
Gruß,
MB
bIce
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 55



BeitragVerfasst: Mo 20.10.03 19:08 
Die Funktionen müssen besondere Vorgaben erfüllen um aufgerufen werden zu können.
ausblenden Delphi-Quelltext
1:
2:
function MyMsg(hwnd: Integer; hinst: Integer; szCmdLine: PChar;
              reserved: Longint): Integer; stdcall;

Die Parameter an die Funktion musst Du über szCmdLine abfragen
laut MS-Knowledgebase muss der letzte Parameter (reserved:LongInt) nicht vorhanden sein, kommt aber bei mir unter Win98 zu einem Fehler nach dem Aufruf der funktion.
Die Funktion muss noch exportiert werden, damit sie rundll32 finden kann:
ausblenden Delphi-Quelltext
1:
exports MyMsg;					

Wenn Du die Funktion aufrufen willst, musst Du zwischen der Dll dem Komma und dem Funktionnamen keinen Leerzeichen angeben.
Bsp:
ausblenden Quelltext
1:
rundll32 Project2,MyMsg Hallo					


EDIT: Wobei noch anzumerken ist, dass Du einen beliebigen Funktionsnamen wählen kannst. ;)

_________________
Gott mag anscheinend einfache Leute, denn er hat viele von ihnen erschaffen.
mb Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 185



BeitragVerfasst: Mo 20.10.03 21:00 
ok, prima.

vielen dank.

_________________
Gruß,
MB