AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi exportierte Prozedur aus EXE mit rundll aufrufen
Thema durchsuchen
Ansicht
Themen-Optionen

exportierte Prozedur aus EXE mit rundll aufrufen

Ein Thema von diabox · begonnen am 15. Okt 2006 · letzter Beitrag vom 15. Okt 2006
Antwort Antwort
Benutzerbild von diabox
diabox

Registriert seit: 13. Sep 2006
61 Beiträge
 
Delphi 2010 Professional
 
#1

exportierte Prozedur aus EXE mit rundll aufrufen

  Alt 15. Okt 2006, 14:38
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:
Code:
rundll32 test.exe Hallo
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
Wer zweifelt, detoniert nicht!'
Dieter Nuhr
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#2

Re: exportierte Prozedur aus EXE mit rundll aufrufen

  Alt 15. Okt 2006, 14:47
Hi,

Ich glaube Du musst die Prozedur als "stdcall" deklarieren. Die Delphi register-Aufrufkonvention dürfte RunDLL nicht bekannt sein...
Edit: Ach, Du hast eine EXE-Datei? Da frage ich mich, ob das (mit RunDll) überhaupt geht.

mfG
mirage228
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Benutzerbild von diabox
diabox

Registriert seit: 13. Sep 2006
61 Beiträge
 
Delphi 2010 Professional
 
#3

Re: exportierte Prozedur aus EXE mit rundll aufrufen

  Alt 15. Okt 2006, 14:54
Also mit stdcall tut sich da noch nichts :-/ Selbe Exception.
Zitat:
Edit: Ach, Du hast eine EXE-Datei? Da frage ich mich, ob das (mit RunDll) überhaupt geht.
Eben das ist auch irgendwie meine Frage, ich war der Annahme, die Rundll würde auch mit LoadModule arbeiten...
Wer zweifelt, detoniert nicht!'
Dieter Nuhr
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:23 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz