我将我的C++ ATL可执行应用程序从VS2003迁移到VS2013。将C++ ATL可执行应用程序从VS2003迁移到VS2013
在VS 2003
类CExeModule:公众的CComModule
在VS2013(其被改为)
类CExeModule:公共ATL :: CAtlExeModuleT < CExeModule>
我已经成功迁移的项目,编译时我面临的一个问题
**
错误C2664: 'ATL :: CHandle :: CHandle(HANDLE)掷()':不能转换 说法1从 '布尔' 到 'ATL :: CHandle &'
**
如果我评论下面的代码我没有得到这个错误
_AtlModule.WinMain(nShowCmd);
有人可以帮助解决这个错误吗?
其他信息
C:\ Program Files文件\微软的Visual Studio 12.0 \ VC \ atlmfc \ \包括atlbase.h(3628):错误C2664:“ATL :: CHandle :: CHandle( HANDLE)throw()':无法将参数1 从'bool'转换为'ATL :: CHandle &'C:\ Program Files \ Microsoft Visual Studio 12.0 \ VC \ atlmfc \ include \ atlbase.h(3608):while编译类 模板成员函数'HRESULT ATL :: CAtlExeModuleT :: PreMessageLoop(int)throw()' C:\ Program Files \ Microsoft Visual Studio 12.0 \ VC \ atlmfc \包括\ atlbase.h(3695):见参考函数模板实例化 'HRESULT ATL :: CAtlExeModuleT :: PreMessageLoop(INT)掷()' 是 编译
stdafx.h中( 107):见参考文献类模板实例 “ATL :: CAtlExeModuleT”正在编制
我想这个问题出现在你不显示的'CExeModule :: PreMessageLoop'中。 –
我没有任何PreMessageLoop在我的代码中...这就是我感到惊讶的地方... –
其他东西干扰了(某些头文件包含在stdafx.h或其他地方等)。你可以在VS2013中创建一个干净的ATL EXE项目,以确保它的构建,并且它被认为是可以构建的。WinMain系列中包含一连串的调用,最终碰撞。我认为这条线路本身并不好(看起来不错)。 –