Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi frage zu pointer (https://www.delphipraxis.net/23964-frage-zu-pointer.html)

Pseudemys Nelsoni 13. Jun 2004 01:01


frage zu pointer
 
hoi,

ich fasse mich mal kurz, also wieso funktioniert dies hier:

Delphi-Quellcode:
err := winsock.WSAStartup(wVersionRequired, WSData);
und das hier nicht:

Delphi-Quellcode:
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....

Christian Seehase 13. Jun 2004 01:20

Re: frage zu pointer
 
Moin Pseudemys Nelsoni,

das liegt an der Art, wie Borland die Funktion implementiert hat.
Da es ein var Parameter ist, wird die Adresse der Struktur übergeben.

Ein Grund, warum ich mir Funktionen oft lieber selber importiere ;-)

Pseudemys Nelsoni 13. Jun 2004 01:22

Re: frage zu pointer
 
hallo christian, danke für die erklärung :thuimb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:41 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz