![]() |
External exception C000001E beim Aufruf einer DLL-Funktion!
Habe eine Funktion einer DLL statisch geladen:
Delphi-Quellcode:
Die Definition des Author sieht so aus:
...
var Form1: TForm1; function SetLCDLight(value: integer): bool; external 'lglight.dll'; implementation ... Zitat:
"Externe Exception C000001E" Wo liegt mein Fehler? |
Re: External exception C000001E beim Aufruf einer DLL-Funkti
Versuch es mal mit
Delphi-Quellcode:
oder
cdecl;
Delphi-Quellcode:
stdcall;
|
Re: External exception C000001E beim Aufruf einer DLL-Funkti
Super, funktioniert!
Was bringt das stdcall; eigentlich? |
Re: External exception C000001E beim Aufruf einer DLL-Funkti
![]() |
Re: External exception C000001E beim Aufruf einer DLL-Funkti
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.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:34 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz