将C ++ ATL可执行应用程序从VS2003迁移到VS2013

时间:2015-05-28 07:28:07

标签: visual-c++ visual-studio-2013 com atl

我正在将我的C ++ ATL可执行应用程序从VS2003迁移到VS2013。

在VS 2003中

类CExeModule:public CComModule

在VS2013中(已更改为)

类CExeModule:public ATL :: CAtlExeModuleT< CExeModule>

我已成功迁移项目,在编译期间我遇到了一个问题

**

  

错误C2664:' ATL :: CHandle :: CHandle(HANDLE)throw()' :无法转换   争论1来自' bool'到' ATL :: CHandle&'

**

如果我评论以下代码

,我不会收到此错误

_AtlModule.WinMain(nShowCmd);

有人可以帮助解决此错误吗?

  

其他信息

     

C:\ Program Files \ Microsoft Visual Studio   12.0 \ VC \ atlmfc \ include \ 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):编译类时   模板成员函数' HRESULT   ATL :: CAtlExeModuleT :: PreMessageLoop(int)throw()'   C:\ Program Files \ Microsoft Visual Studio   12.0 \ VC \ atlmfc \ include \ atlbase.h(3695):参见函数模板实例化' HRESULT   ATL :: CAtlExeModuleT :: PreMessageLoop(int)throw()'存在   编译

     

stdafx.h(107):参见类模板实例化   ' ATL :: CAtlExeModuleT'正在编制

1 个答案:

答案 0 :(得分:0)

谢谢Igor Tandetnik ......

我在CExeModule类中更改函数名后解决了这个问题bool StratMonitor()