Einzelnen Beitrag anzeigen

Pow3rus3r

Registriert seit: 17. Apr 2012
43 Beiträge
 
Delphi XE Professional
 
#1

dll einbinden / Pointer Probleme

  Alt 17. Apr 2012, 13:55
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.
  Mit Zitat antworten Zitat