Hallo zusammen
ich habe eine
DLL die ich verwenden will. Der Hersteller der das vertreibt unterstützt aber nur VB und C++.
Also sind in seiner Dokumentation auch nur VB und C++ Beispiele dabei.
Ich will aber Delphi verwenden also hab ich mal angefangen die C++ Header Files bzw. die entprechende .Bas Datei in Delphi zu übersetzen.
Das geht so weit auch. Und einige wenige funktionen kann ich auch schon beutzen
(vor allem die ohne Parameter Übeergabe)
C++
KMErrorCode EXPORTFCN KMTCPRefreshDevices( void ); // funktioniert in delphi
KMErrorCode EXPORTFCN KMTCPGetNumDevices( LPUINT16 lpnNumDevices ); // das auch
delphi
Function KMTCPRefreshDevices (): Long; cdecl; external 'KmApi32.DLL';
Function KMTCPGetNumDevices (lpnNumDevices : pWord): Long; cdecl; external 'KmApi32.DLL';
aber bei folgender Funktion geht nix
C++
/* TCPIP Server Control
access functions */
KMErrorCode EXPORTFCN KMTCPGetDeviceInformation(char *lpszNameArray[], char *lpszAddressArray[], char *lpszSNArray[], UINT16 DIPArray[], int nNumDevices );
wie muß ich das hier machen??
es wird nachher in C++ verwendet wie folgt
/*------------------------------------------------------------------------*/
unsigned short NumberDevices = 0;
/* Force the
API to look for devices on the network */
KMTCPRefreshDevices();
/* Get the number of devices found on serial and/or Ethernet */
KMTCPGetNumDevices(&NumberDevices);
/* Initialize the array to retrieve all device names, */
/* serial numbers, and
IP addresses */
char **NameArray= new char*[NumberDevices];
char **IPArray = new char*[NumberDevices];
char **SNArray = new char*[NumberDevices];
UINT16 *DIPArray = new UINT16[NumberDevices];
for(int j=0;j<NumberDevices;j++)
{
NameArray[j]=new char[MAX_TCP_NM_LENGTH];
IPArray[j]=new char[MAX_TCP_IP_LENGTH];
SNArray[j]=new char[MAX_TCP_SN_LENGTH];
}
/* Retrieve the device information */
KMTCPGetDeviceInformation(NameArray, IPArray, SNArray, DIPArray,
NumberDevices);
/*------------------------------------------------------------------------*/
und wie muß ich das dan verwenden??
ich hoffe mir kann jemand helfen
Gruß Stefan