2015-05-28 55 views
0

我将我的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”正在编制

+0

我想这个问题出现在你不显示的'CExeModule :: PreMessageLoop'中。 –

+0

我没有任何PreMessageLoop在我的代码中...这就是我感到惊讶的地方... –

+0

其他东西干扰了(某些头文件包含在stdafx.h或其他地方等)。你可以在VS2013中创建一个干净的ATL EXE项目,以确保它的构建,并且它被认为是可以构建的。WinMain系列中包含一连串的调用,最终碰撞。我认为这条线路本身并不好(看起来不错)。 –

回答

0

感谢伊戈尔Tandetnik ....

我解决了这个问题,在课堂上CExeModule布尔StratMonitor改变函数名后()

相关问题