首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > VSTS >

VS创建atl simple object异常解决方案

2013-04-02 
VS创建atl simple object错误解决方案VS20052008在ATL工程中添加atl simple object的时候会报如下错误:ATL

VS创建atl simple object错误解决方案
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
查阅各种资料终于解决问题:现在总结各种解决方案列出来供大家参考,总有一种方案能够解决你的问题 
方案一:这是目前成功率最高的方法1.找到Microsoft Visual Studio 8\VC\VCWizards\1033\common.js2.定位到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"完事
相信总有一种方案能够解决你的问题
参考资料:http://social.msdn.microsoft.com/Forums/en-US/vcgeneral/thread/7d9a0bb3-fa2a-416b-8982-aa0fbacb5b45                http://stackoverflow.com/questions/8491717/visual-studio-cant-add-atl-class-to-atl-project

热点排行