![]() |
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.
|
Re: Integer aus Dll übergeben
Achso ja da hätte ich auch drauf kommen können.
Aber wie mache ich das ganze mit einem String ? |
Re: Integer aus Dll übergeben
Einfach mal Google oder die Forensuche bemühen:
![]() |
Re: Integer aus Dll übergeben
Vielleicht geht es ja auch wenn du die Integer-Zahl vor dem Übergeben aus der DLL in einen String umwandelst und den String dann in ein Pchar. Dann übergibst du das Ganze und wandelst es in der Anwendung wieder in einen String und dann in ein Integer um. Is zwar etwas umständlich, aber es müsste eigentlich funktionieren.
|
Re: Integer aus Dll übergeben
Danke.
Mit dem von Luckie hats geklappt. MfG |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:43 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