Compiler Errors in atlwin.h

后端 未结 2 1138
刺人心
刺人心 2021-01-15 21:44

When including atlwin.h from the Microsoft ATL libraries in Visual Studio 2013 building will result in numerous complier errors about undefined elements.

i.e.

<
相关标签:
2条回答
  • 2021-01-15 21:59

    The problem is with the targeted version of windows in the stdafx.h file

    from MSDN

    Visual C++ no longer supports targeting Windows 95, Windows 98, Windows ME, or Windows NT. If your WINVER or _WIN32_WINNT macros are assigned to one of these versions of Windows, you must modify the macros. When you upgrade a project that was created by using an earlier version of Visual C++, you may see compilation errors related to the WINVER or _WIN32_WINNT macros if they are assigned to a version of Windows that is no longer supported.

    So, changing

    #ifndef WINVER  
    #define WINVER 0x0400   
    #endif
    

    to

    #ifndef WINVER  
    #define WINVER 0x0500
    #define _WIN32_WINNT 0x0500
    #endif
    

    corrects the build problem

    0 讨论(0)
  • 2021-01-15 22:22

    CWindowImpl is defined in <atlwin.h>, so you need to include that. I don't know what the file atldwin.h that you're including is, but apparently it doesn't contain that class.

    Edit: According to a comment below by CCondron, this is due to targeting versions of Windows no longer supported by Visual C++. To fix, add:

    #define WINVER 0x0500 
    #define _WIN32_WINNT 0x0500
    
    0 讨论(0)
提交回复
热议问题