VS2005 2008在ATL工程中添加atl simple object的时候会报如下错误:
ATL classes can only be added to MFC EXE and MFC Regular DLL projects or projects with full ATL support
ATL classes can only be added to MFC EXE and MFC Regular DLL projects or projects with full ATL support
查阅各种资料终于解决问题:
现在总结各种解决方案列出来供大家参考,总有一种方案能够解决你的问题
方案一:
这是目前成功率最高的方法
1.找到Microsoft Visual Studio 8\VC\VCWizards\1033\common.js
2.定位到IsATLProject方法
3.改变代码:
if (oClass.IsDerivedFrom("CAtlDllModuleT") || oClass.IsDerivedFrom("ATL::CAtlDllModuleT") ||
oClass.IsDerivedFrom("CAtlModuleT") || oClass.IsDerivedFrom("ATL::CAtlModuleT") )
to
if (oClass.IsDerivedFrom("CAtlDllModuleT") || oClass.IsDerivedFrom("ATL::CAtlDllModuleT") ||
oClass.IsDerivedFrom("CAtlModuleT") || oClass.IsDerivedFrom("ATL::CAtlModuleT") ||
oClass.IsDerivedFrom("CAtlServiceModuleT") || oClass.IsDerivedFrom("ATL::CAtlServiceModuleT") )
4.删除工程中的.ncb文件 重新加载工程 就OK了
方案二:
这个方法比较暴力,但是很好使,如果方案一不通过 请采用这种方式
方案一中第二步之后,直接将IsATLProject方法的内容改为return true;
方案三:
将 .NET SDK directory (<install dir>\SDK\v2.0\bin)中的 tlbref.dll加入到环境变量(path)中,具体方法就不在这里赘述了
删除工程中的.ncb文件 重新加载工程
有很多人都用这种方式成功了
方案四:
有点迷信的方法,有人成功过
Project Properties -> Configuration Properties -> General -> Use of ATL -> Change to "Static Link To ATL", click "OK"
Project Properties -> Configuration Properties -> General -> Use of ATL -> Change back to "Dynamic Link To ATL", click "OK"
Project Properties -> Configuration Properties -> General -> Use of ATL -> Change back to "Dynamic Link To ATL", click "OK"
完事
相信总有一种方案能够解决你的问题
作者:ModestMouse 发表于2013-4-1 16:02:54 原文链接
阅读:0 评论:0 查看评论