Vielleicht ist es Murks aber es funktioniert.
Zitat:
Die Deklaration von KMTCPGetNumDevices mit "var" statt Zeiger umschreiben, dann kann man
KMTCPGetNumDevices(NumDevices);
benutzen.
das geht klar und funktioniert wunderbar
aber was ich nicht verstehe ist @name[0] ist doch der Zeiger auf nur einen Namen. Was ist wenn ich mehrere
devices habe NumDevices>1 ?
Deshalb habe ich das mit den dynamischen arrays ja so gemacht, daß NumDevices variabel sein kann.
Brauche ich dann nicht genau soviel Pointer auf die unterscheidlichen name[lLoop] wie es devices gibt?
enspricht das dann nicht so in etwa dem was auch in C++ gemacht wurde
Code:
/* 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];
oder wie sollte ich das namens array (also nicht name[0]..) anders initialisieren.
Code:
ppName := @nBuff[0];
ppIp := @ipBuff[0];
ppSer := @serStrBuff[0];
das ist natürlich murks und müll, das hab ich auch gleich selbst gelöscht und dann
Code:
KMTCPGetDeviceInformation(@nBuff[0], @ipBuff[0], @serStrBuff[0], DipArrayBuff[0], NumDevices);
direkt aufgerufen.
Verwirrter Gruß
Stefan