hoi,
ich fasse mich mal kurz, also wieso funktioniert dies hier:
err := winsock.WSAStartup(wVersionRequired, WSData);
und das hier nicht:
err := winsock.WSAStartup(wVersionRequired, @WSData);
also mit "@".
Die Funktion verlangt als 2ten parameter doch einen pointer auf die variable:
Zitat:
lpWSAData
[out] A pointer to the WSADATA data structure that is to receive details of the Windows Sockets implementation.
oder?
das habe ich aus den sourcen:
Zitat:
type
PWSAData = ^TWSAData;
{$EXTERNALSYM WSAData}
WSAData = record // !!! also WSDATA
wVersion: Word;
wHighVersion: Word;
szDescription: array[0..WSADESCRIPTION_LEN] of Char;
szSystemStatus: array[0..WSASYS_STATUS_LEN] of Char;
iMaxSockets: Word;
iMaxUdpDg: Word;
lpVendorInfo: PChar;
end;
TWSAData = WSAData;
ich sehe aber NIRGENDS das WSAData ein pointer auf irgendwas ist, nur PWSAData....