Hallo
Ich verwende in meinem Projekt MFC. Das Includen von Windows.h vor dem Includen der MFC-Header erzeugt eine Fehlermeldung.
Leider verwende ich ein API, das die Windows.h includen muss und vor dem Include noch FD_SETSIZE (die Anzahl verwendeter Sockets) definiert.
Das ist also eine ziemlich hässliche Zwickmühle. :(
Hier die Meldung vom API:
"
Programmieren - alles kontrollieren 4.934 Themen, 20.613 Beiträge
Okay ...?
Was mich verwundert ist die Meldung "This file must be included prior to any header file that defines FD_SETSIZE, such as <windows.h>, <winsock.h>, or <winsock2.h>". Das sieht ganz danach aus:
#if defined FD_SETSIZE
#error "This file must be included prior to any header file that defines FD_SETSIZE, such as <windows.h>, ... "
#endif
Wie wird denn nun FD_SETSIZE in den Headern definiert?
/*
* Select uses arrays of SOCKETs. These macros manipulate such
* arrays. FD_SETSIZE may be defined by the user before including
* this file, but the default here should be >= 64.
*
* CAVEAT IMPLEMENTOR and USER: THESE MACROS AND TYPES MUST BE
* INCLUDED IN WINSOCK2.H EXACTLY AS SHOWN HERE.
*/
#ifndef FD_SETSIZE
#define FD_SETSIZE 64
#endif /* FD_SETSIZE */
Quelle: http://doc.ddart.net/msdn/header/include/winsock2.h.html