laden einer DLL Funktion funktioniert nicht.



  • 🤡 <-- Da ist es 😃



  • Hallo zusammen,

    die Funktion "gai_strerr" wird nicht von "ws2_w32.dll" exportiert und kann somit auch nicht via LoadLibrary & GetProcAddress ermittelt werden. Um diese Funktion nutzen zu können, muss der Header "ws2tcpip.h" eingebunden werden, da dort die Funktion nicht nur definiert sondern auch implementiert ist.

    Gruß refowe



  • Ich hab diesen Header eingebunden, aber gai_strerror und getaddrinfo usw. sind undefiniert....WARUUUuuUUM? - *heul



  • refowe schrieb:

    da dort die Funktion nicht nur definiert sondern auch implementiert ist

    Und was ist da der Unterschied? 😃

    clierko schrieb:

    Ich hab diesen Header eingebunden, aber gai_strerror und getaddrinfo usw. sind undefiniert....WARUUUuuUUM? - *heul

    Evtl. altes PlatformSDK? Zudem steht in der Doku auch was von Wspiapi.h.



  • hab jetzt alles aus der sdk ins mfc++ verzeichnis kopiert.

    jetzt bekomme ich hunderte Fehler:

    Hier ein Ausschnitt:

    microsoft visual studio6\vc98\include\ws2tcpip.h(29) : error C2079: 'imr_multiaddr' uses undefined struct 'in_addr'
    e:\microsoft visual studio6\vc98\include\ws2tcpip.h(30) : error C2079: 'imr_interface' uses undefined struct 'in_addr'
    e:\microsoft visual studio6\vc98\include\ws2tcpip.h(38) : error C2079: 'imr_multiaddr' uses undefined struct 'in_addr'
    e:\microsoft visual studio6\vc98\include\ws2tcpip.h(39) : error C2079: 'imr_sourceaddr' uses undefined struct 'in_addr'
    e:\microsoft visual studio6\vc98\include\ws2tcpip.h(40) : error C2079: 'imr_interface' uses undefined struct 'in_addr'
    e:\microsoft visual studio6\vc98\include\ws2tcpip.h(46) : error C2079: 'imsf_multiaddr' uses undefined struct 'in_addr'
    e:\microsoft visual studio6\vc98\include\ws2tcpip.h(47) : error C2079: 'imsf_interface' uses undefined struct 'in_addr'
    e:\microsoft visual studio6\vc98\include\ws2tcpip.h(48) : error C2146: syntax error : missing ';' before identifier 'ims



  • clierko schrieb:

    hab jetzt alles aus der sdk ins mfc++ verzeichnis kopiert.

    Keine gute Idee. Sag deiner IDE einfach, wo sich die Include Verzeichnisse befinden (über die Optionen machbar).



  • Das hatte ich schon probiert..klappte nicht so recht, aber daran liegt es nicht.

    #include <winsock2.h>
    #include <WS2tcpip.h>
    
    int main()
    {
    	return 0;
    }
    

    Fehler:

    e:\microsoft visual studio6\vc98\include\wspiapi.h(45) : error C2265: '<Unknown>' : reference to a zero-sized array is illegal
    e:\microsoft visual studio6\vc98\include\wspiapi.h(45) : error C2265: '<Unknown>' : reference to a zero-sized array is illegal
    Error executing cl.exe.



  • zero-sized Arrays sind in C++ nicht erlaubt (IIRC auch in C). Und gerade im Hinblick auf Standard Konformität nutzen die PlatformSDK Header oft Compiler Erweiterungen. Hast du diese evtl. deaktiviert?



  • Wo kannich das an/abschalten? (MVC++ 6.0)



  • clierko schrieb:

    Wo kannich das an/abschalten? (MVC++ 6.0)

    I had same problem, now i have added:
    /D "_WSPIAPI_COUNTOF"
    to Project Options found in Project Settings...
    And now everything is ok...


Anmelden zum Antworten