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

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.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"
完事

相信总有一种方案能够解决你的问题

参考资料:http://social.msdn.microsoft.com/Forums/en-US/vcgeneral/thread/7d9a0bb3-fa2a-416b-8982-aa0fbacb5b45
                http://*.com/questions/8491717/visual-studio-cant-add-atl-class-to-atl-project