Programmieren - alles kontrollieren 4.934 Themen, 20.613 Beiträge

Mehrfaches Includen von Windows.h bei MFC

Yves3 / 9 Antworten / Flachansicht Nickles

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:
"

bei Antwort benachrichtigen
d-oli PaoloP „na ein ifdef hilft insofern auch nicht weiter weil der Präprozessor dann...“
Optionen

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

Konstruktive Kritik zeichnet sich dadurch aus, dass sie höflich, nützlich und sachlich ist.
bei Antwort benachrichtigen