Einzelnen Beitrag anzeigen

Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: External exception C000001E beim Aufruf einer DLL-Funkti

  Alt 21. Aug 2008, 20:25
Es legt die sogenannte Aufrufkonvention fest. Die Aufrufkonvention sagt u.A., wie die Funktion ihre Parameter erwartet - auf dem Stack oder in Registern - und in welcher Reihenfolge. Die DLL-Funktion hat offensichtlich die Aufrufkonvention stdcall, erwartet ihren Parameter also auf dem Stack. Du hast jedoch keine Aufrufkonvention angegeben, dadurch hat Delphi angenommen, dass es sich um die Delphi-eigene Konvention Register handelt. Das bedeutet, dass die ersten drei Parameter in Registern übergeben werden. Du hast der Funktion ihren Parameter also in einem Register gegeben, die Funktion hat aber auf dem Stack nachgeschaut. Dass das nicht klappen kann, sollte klar sein.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat