Einzelnen Beitrag anzeigen

alf.stefan

Registriert seit: 11. Apr 2003
88 Beiträge
 
Delphi 7 Professional
 
#1

habe DLL aber nur C++ und VB Beispiele

  Alt 11. Jan 2005, 11:04
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
  Mit Zitat antworten Zitat