atlwin.h中的编译器错误

 夏雨荷Cassiopeia 发布于 2023-02-13 15:52

当从Visual Studio 2013构建中的Microsoft ATL库中包含atlwin.h时,将导致关于未定义元素的大量编译器错误.

#include 
class MainWnd : public CWindowImpl
{};

"CWindowImpl:未定义基类"错误.

要么

HMONITOR没有定义

使用VS2010构建时不会发生这种情况.

我该如何解决这个问题?

1 个回答
  • 问题在于stdafx.h文件中的目标Windows版本

    来自MSDN

    Visual C++不再支持Windows 95,Windows 98,Windows ME或Windows NT.如果将WINVER或_WIN32_WINNT宏分配给其中一个版本的Windows,则必须修改宏.升级使用早期版本的Visual C++创建的项目时,如果将它们分配给不再受支持的Windows版本,则可能会看到与WINVER或_WIN32_WINNT宏相关的编译错误.

    所以,改变

    #ifndef WINVER  
    #define WINVER 0x0400   
    #endif
    

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

    纠正了构建问题

    2023-02-13 15:55 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有