![]() |
Integer aus Dll übergeben
Hallo
ich habe eine Dll gemacht mit diesem Inhalt :
Delphi-Quellcode:
Jetzt will ich das ganze in Meinem Programm aufrufen. Dynamisch.function GetName : Integer ; begin Result:=123456789; end;
Delphi-Quellcode:
Wenn in der Dll 123456789 steht geht das ganz wunderbar. Wenn ich aber irgenwo eine 0 reinmache kommt eine ganz andere Zahl raus?? Mit String geht das ganze auch nicht, wie mache ich das ?type TGetN = function: Integer; stdcall; function GetName: Integer; function GetName: Integer; var GetN: TGetN; Handle: THandle; begin Handle:=LoadLibrary(PChar('E:\TestPlugin.dll')); if Handle <> 0 then begin @GetN := GetProcAddress(Handle, 'GetName'); if @GetN <> nil then begin result:=GetN; end; FreeLibrary(Handle); end; end; MfG |
Re: Integer aus Dll übergeben
Ist das Absicht, mit den unterschiedlichen Aufrufkonventionen?
|
Re: Integer aus Dll übergeben
dein Problem ist vermutlich das du nur abgetippt hast und nicht wirklich weißt was das stdcall bedeutet. Entweder du gibst in der DLL und außerhalb der dll diese Convention an oder in keinem der beiden Fälle. Aber auf keinen Fall mischen.
|
Re: Integer aus Dll übergeben
Ich habe das leider nur abgetippt und ich weis auch leider nicht wirklich was das stdcall bedeutet :(.
Was genau hab ich jetzt falsch gemacht? bzw. was muss ich ändern ? MfG |
Re: Integer aus Dll übergeben
Nimm einfach mal das stdcall komplett weg! (Obwohl in dem speziellen Fall es doch eigentlich egal sein könnte)
|
Re: Integer aus Dll übergeben
|
Re: Integer aus Dll übergeben
Diese Tutorial habe ich zwar schon mal gelesen, aber..
Das stdcall hatte ich schon versucht wegzulassen aber es hat sich nichts verändert. MfG |
Re: Integer aus Dll übergeben
Ohne stdcall ist alles korrekt. Bei welcher Zahl soll das denn nicht funktionieren?
|
Re: Integer aus Dll übergeben
Immer wenn eine 0 in die Zahl vorkommt funktioniert das ganze nicht mehr.
z.B : bei 00010203040506070809 kommt das raus 2087039129. MfG |
Re: Integer aus Dll übergeben
00010203040506070809 ist auch kein Integer mehr.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:24 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