Ich habe eine ganz normale
Win32 Anwendung (.EXE): Aus dieser heraus exportiere ich eine kleine Testprozedur:
Delphi-Quellcode:
procedure Hallo();
begin
ShowMessage('Hallo Welt');
end;
exports Hallo;
Diese Prozedur möchte ich jetzt gerne direkt starten, ohne dass die Anwendung etwas anderes macht, als diese Funktion auszuführen. Darum dachte ich mir, ich behandle die Anwendung wie eine
DLL - also als Modul - und starte die Prozedur so:
Wenn die Prozedur nichts macht, gibt es auch keine Fehler, rundll32 läuft reibungslos ab.
Wenn ich die Prozedur aber mit diesem ShowMessage oder mit einer Funktion, die eine Datei erstellt bestücke, erhalte ich eine
Exception von der rundll32 und zwar steht da nicht, wie sonst, wenn mein Code eine
Exception verursacht hat: In dem Modul ist eine Ausnahme aufgetreten (o.ä.) sondern:
Zitat:
---------------------------
rundll32.exe - Fehler in Anwendung
---------------------------
Die Anweisung in "0x0042a490" verweist auf Speicher in "0x00000000". Der Vorgang
"written" konnte nicht auf dem Speicher durchgeführt werden.
... [Den Rest kennt ihr ja ^^] ...
Arbeitet die rundll32 nicht mit LoadModule und co. oder was muss ich tun, damit das klappt? Ich möchte dafür keine extra
DLL beilegen, weil ich nicht genau weiß ob ich auf dem Datenträger Schreibzugriff habe.
Danke im voraus