FIX: Using #define NOGDI Results in Compilation Syntax ErrorsLast reviewed: September 19, 1997Article ID: Q148318 |
The information in this article applies to:
SYMPTOMSCompiling a source file that contains the following code:
#define NOGDI #include <windows.h>results in several syntax errors such as these:
winuser.h(8577) : error C2501: 'LOGFONTA' : missing decl-specifiers winuser.h(8577) : error C2146: syntax error : missing ';' before identifier 'lfFont' CAUSEGDI-specific types like LOGFONTA are not defined when NOGDI is defined. However, header files like Winuser.h and Imm.h have structures that contain the GDI-specific types without the surrounding "#ifndef NOGDI"/"#endif" pair. The compiler generates syntax error for the GDI-specific types inside these structures.
RESOLUTIONDo not use #define NOGDI, or edit the system header files that produce the syntax errors to add the "#ifndef NOGDI"/"#endif" pair around the structures that contain the GDI-specific types.
STATUSMicrosoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article. This bug was corrected in Visual C++ version 5.0. Keywords : vcbuglist400 vcfixlist500 VCGenIss kbprg Version : 2.2 4.0 4.1 4.2 Platform : NT WINDOWS Issue type : kbbug Solution Type : kbfix |
================================================================================
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |