okey, ich hab mir eins ausgesucht =)
ich glaube ich komme von einem problem ins nächste. nun das aktuelle:
ich habe für das lesegerät nicht nur eine ReaderDLL.dll bekommen, sondern auch ein paar header dateien (in C). aus diesen header dateien möchte ich jetzt herausbekommen, welche funktionen in der
dll stehen und mit welchen parametern ich sie aufrufen muss.
in den header dateien steht unter anderem:
typdefinition zu tRRUI4CommandFunctionMode:
Code:
typedef enum
{
RRUI4CFM_NORMAL = 0,
RRUI4CFM_DIRECT,
RRUI4CFM_LAST
} tRRUI4CommandFunctionMode;
typdefinition zu tComHandle:
Code:
typedef void *tComHandle;
funktions-header:
Code:
typedef void (tDllResultHandlerGetMode)(tRRUI4CommandFunctionMode FunctionMode, tComHandle
Handle, void *pTag);
ich möchte nun auf diese funktion zugreifen. dazu hab ich in meinem delphi programm mal folgendes geschrieben:
Delphi-Quellcode:
type
TZiffer = 0..9;
...
var
zeiger1,zeiger2: Pointer;
implementation
procedure tDllResultHandlerGetMode(FunctionMode:TZiffer;
Handle,pTag: Pointer);
stdcall;
external '
ReaderDll.dll';
procedure TForm1.Button1Click(Sender: TObject);
begin
tDllResultHandlerGetMode(0,zeiger1,zeiger2);
end;
ich bekomme als fehlermeldung beim ausführen: "Der Prozedureinsprungpunkt "tDllResultHandlerGetMode" wurde in der
DLL "ReaderDll.dll" nicht gefunden."
mögliche fehler:
-mein datentyp TZiffer ist im speicher möglicherweise anders angelegt als es das enum von C macht
-in der headerdatei ist es eine funktion mit rückgabewert void, ich wusste nicht wie ich das in delphi mache also hab ich einfach ne prozedur genommen...
-diese funktion existiert wirklich nicht in der
DLL.... aber warum steht sie dann im header?