Struktur addrinfo in windows.inc auskommentiert



  • Hallo zusammen,

    ich stecke zur Zeit in der Netzwerkprogrammierung mit der WinApi.

    Um die IP-Adresse eines Rechners zu ermitteln nutze ich die Funktion
    gethostbyname().

    In der MSDN ist ein Hinweis auf die neue Funktion getaddrinfo().
    Diese braucht die Struktur addrinfo, die wiederum in der windows.inc
    auskommentiert ist.

    comment *
    addrinfo STRUCT
        ai_flags DWORD ?
        ai_family DWORD ?
        ai_socktype DWORD ?
        ai_protocol WORD ?
        ai_addrlen DWORD ?
        ai_canonname BYTE ?
        ai_addr sockaddr <>
        ai_next addrinfo <>
    addrinfo ENDS
    *
    

    Wenn ich diese Struktur dennoch verwenden will und in meinem Programm einbinde,
    erhalte ich Fehlermeldungen wie diese:

    Syntax error : ai_addr
    Syntax error : ai_next

    non-benign structure redefinition auf Googledeutsch:
    nicht gutartige Struktur redefinition

    Wenn ich die Struktur sockaddr vor addrinfo erstelle, ist der erste Fehler weg.
    Der zweite will einfach nicht weichen. Zumal in der MSDN noch steht, das diese
    beiden Parameter mit NULL zu initialisieren sind.

    Hier http://msdn.microsoft.com/en-us/library/windows/desktop/ms738520(v=vs.85).aspx ist ein Beispiel für C/C++ was ich aber beim besten Willen
    nicht umgesetzt bekomme mit MASM.

    Weiß jemand wieso diese Struktur auskommentiert ist und wie ich diese dennoch
    nutzen kann? 💡

    Grüße, Nicky 🙄



  • addrinfo STRUCT 
        ai_flags        SDWORD  ? 
        ai_family       SDWORD  ? 
        ai_socktype     SDWORD  ? 
        ai_protocol     SDWORD  ? 
        ai_addrlen      DWORD   ? 
        ai_canonname    PCHAR   ? 
        ai_addr         PVOID   ? ; struct sockaddr*
        ai_next         PVOID   ? ; struct addrinfo* 
    addrinfo ENDS
    

    Die Struktur ist auskommentiert, da die Deklaration falsch ist und wegen der Selbstreferenz auch nicht 1:1 in MASM umzusetzen ist.


Anmelden zum Antworten