Hallo,
ich möchte eine
dll, die mit c++ geschrieben wurde in meinem Delphi Programm nutzen. Die
DLL habe ich wie folgt eingebunden:
function COM_TcpOpen(const m_hCom:Pointer; const ipAddress:Pchar; port:integer):string; stdcall; external 'HwCom.dll';
Nun gibt es eine c++ Funktion (COM_TcpOpen) in dieser
DLL, die folgende Übergabewerte erwartet:
Code:
COM_TcpOpen (COM_Handle *
handle, const char * ipAddress, u16 port)
Jedoch habe ich Probleme beim Einbinden der Funktion (ich denke, es liegt an dem ersten Übergabewert). Und zwar bringt mir Delphi immer einen Lesefehler auf Adressbereich xyz (wobei xyz dem Wert des Pointers entspricht. Die Funktion erwartet eigentlich einen "leeren" Pointer, der durch die Funktion gefüllt werden soll.
Der Quelltext meines Delphi Programms sieht zur Zeit wie folgt aus:
Delphi-Quellcode:
procedure TForm1.btnconnectClick(Sender: TObject);
var
m_hCom: Pointer;
ret:string;
port:smallint;
iparray:array[0..12] of char;
ipAddress:PChar;
begin
m_hCom := NIL;
port:= 1500;
ipAddress:=iparray;
ipAddress[0]:='1';
ipAddress[1]:='9';
ipAddress[2]:='2';
ipAddress[3]:='.';
ipAddress[4]:='1';
ipAddress[5]:='6';
ipAddress[6]:='8';
ipAddress[7]:='.';
ipAddress[8]:='1';
ipAddress[9]:='.';
ipAddress[10]:='1';
ipAddress[11]:='5';
ipAddress[12]:=#0;
ret := COM_TcpOpen(m_hCom,ipAddress,port);
end;
Hat vielleicht jemand einen Tipp für mich, woran es liegen kann, dass ich ständig Lesefehler bekomme? ich probiere nun schon seit Tagen rum und komme nicht wirklich weiter... Wäre super, wenn jemand helfen könnte. Ich komme eigentlich auch nicht aus der Delphi Ecke.