Question

Pourquoi ne puis-je pas inclure Windows.H dans les projets AFX (MFC)?

Était-ce utile?

La solution

En règle générale, le code d'application MFC comprend afx.h ou afxwin.h (Ce dernier comprend l'ancien). Deux premières lignes de windows.h sommes

#ifndef _WINDOWS_
#define _WINDOWS_

ce qui signifie que _WINDOWS_ devient défini si cet en-tête est inclus.Afx.h comprend afxver_.h Et cet en-tête comprend afxv_w32.h qui contient le code suivant:

#ifdef _WINDOWS_
    #error WINDOWS.H already included. MFC apps must not #include <windows.h>
#endif
...
#include <windows.h>

Donc, si vous incluez windows.h Avant les en-têtes MFC, vous obtiendrez cette erreur générée en temps de compilation et, comme vous pouvez le voir, si vous incluez afxwin.h Vous n'avez pas besoin d'inclure windows.h vous-même - il sera déjà inclus par afxv_w32.h.

Autres conseils

Parce que dans MFC, vous n'êtes pas censé l'utiliser directement. Afair vous devez inclure AFX.H à la place, qui à son tour inclut indirectement Windows.h de la bonne façon.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top