今天使用Visual Studio 2010 SP1创建ATL 控件,发现只要打开控件的头文件IDE就崩溃重启。
事件日志:
错误应用程序名称: devenv.exe,版本: 10.0.40219.1,时间戳: 0x4d5f2a73
错误模块名称: KERNELBASE.dll,版本: 6.1.7601.18229,时间戳: 0x51fb1116
异常代码: 0xe0434352
错误偏移量: 0x0000c41f
错误进程 ID: 0x2540
错误应用程序启动时间: 0x01cf749e2d3c37c9
错误应用程序路径: C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe
错误模块路径: C:\Windows\syswow64\KERNELBASE.dll
报告 ID: 8d7eef67-e091-11e3-b8fb-7071bc183a39
GOOGLE了以下没发现有价值的东西,只有一个安装一个插件结果与我的类似。但是我只安装了VA助手,禁用也不好用。
只有处理这个头文件了一点点试了,很幸运没花多长时间就解决。
头文件引用
...
#if defined(_WIN32_WCE) && !defined(_CE_DCOM) && !defined(_CE_ALLOW_SINGLE_THREADED_OBJECTS_IN_MTA)
#error "Windows CE 平台(如不提供完全 DCOM 支持的 Windows Mobile 平台)上无法正确支持单线程 COM 对象。定义 _CE_ALLOW_SINGLE_THREADED_OBJECTS_IN_MTA 可强制 ATL 支持创建单线程 COM 对象实现并允许使用其单线程 COM 对象实现。rgs 文件中的线程模型已被设置为“Free”,原因是该模型是非 DCOM Windows CE 平台支持的唯一线程模型。"
#endif
...
看上面的代码无用就注释掉了,重启居然ok了。
这是啥原因呢?呵呵,不知道。重新启动VA也ok了。估计这就是问题的所在了!但不知道为啥啊!
本文由VS软件圈(vssoft.net)发布,不代表VS软件圈立场,转载联系作者并注明出处:https://vssoft.net/vsazwt/VS2010anzhuangwenti/2020/0724/2171.html