Hallo,
ich habe das Problem, das ich einen C-Funktionsaufruf aus einer DLL in Delphi nutzen möchte. Mir steht ein C-Beispiel zur Verfügung welches einwandfrei läuft. Ich habe das Ganze nach Delphi übersetzt, aber leider crashed das Ganze ohne plausible Fehlermeldung.
Ich habe hier beides mal gekürzt und drangehängt. Vielleicht ist jemand so nett und schaut mal drüber wo mein Fehler in der Übersetzung liegt.
<PRE>
1. C-Code der läuft.
------------------------------------------------------
typedef BOOL (*p_MyIn32)(unsigned short, unsigned short);
p_MyIn32 MyIn32=NULL;
.....
.....
.....
.....
hTT=GetModuleHandle(_T("My.dll"));
.....
.....
.....
.....
MyIn32=(p_MyIn32)((ULONG)hTT+0xED10);
.....
MyIn32(T_My_COMMAND, MyBuffer[0]); // <<<< läuft
<P>
------------------------------------------------------
<P>
2. Delphi-Code der nicht läuft. Der crash kommt in der letzten Zeile.
------------------------------------------------------
<P>
type TMyIn32 = function(Value1, Value2:smallint):boolean;cdecl;
<P>
var Handle: THandle;
MyIn32 : TMyIn32;
<P>
Handle := LoadLibrary('My.dll');
<P>
@MyIn32:=Ptr(Handle+$ED10);
<P>
MyIn32(T_My_COMMAND, MyBuffer[0]); // <<<< das geht schief
<P> <P>
Danke im voraus !!!
<P> <P>
Gruss
Stalle
ich habe das Problem, das ich einen C-Funktionsaufruf aus einer DLL in Delphi nutzen möchte. Mir steht ein C-Beispiel zur Verfügung welches einwandfrei läuft. Ich habe das Ganze nach Delphi übersetzt, aber leider crashed das Ganze ohne plausible Fehlermeldung.
Ich habe hier beides mal gekürzt und drangehängt. Vielleicht ist jemand so nett und schaut mal drüber wo mein Fehler in der Übersetzung liegt.
<PRE>
1. C-Code der läuft.
------------------------------------------------------
typedef BOOL (*p_MyIn32)(unsigned short, unsigned short);
p_MyIn32 MyIn32=NULL;
.....
.....
.....
.....
hTT=GetModuleHandle(_T("My.dll"));
.....
.....
.....
.....
MyIn32=(p_MyIn32)((ULONG)hTT+0xED10);
.....
MyIn32(T_My_COMMAND, MyBuffer[0]); // <<<< läuft
<P>
------------------------------------------------------
<P>
2. Delphi-Code der nicht läuft. Der crash kommt in der letzten Zeile.
------------------------------------------------------
<P>
type TMyIn32 = function(Value1, Value2:smallint):boolean;cdecl;
<P>
var Handle: THandle;
MyIn32 : TMyIn32;
<P>
Handle := LoadLibrary('My.dll');
<P>
@MyIn32:=Ptr(Handle+$ED10);
<P>
MyIn32(T_My_COMMAND, MyBuffer[0]); // <<<< das geht schief
<P> <P>
Danke im voraus !!!
<P> <P>
Gruss
Stalle
Comment