Visual Studio:无法将ATL类添加到ATL项目中?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Visual Studio:无法将ATL类添加到ATL项目中?相关的知识,希望对你有一定的参考价值。

所以,我正在使用向导在visual studio 2008中创建一个ATL项目(推荐在这里 - How to create ActiveX DLL in Visual C++ - 以及其他地方)

但是我不能在我的项目中添加任何类。 VS返回以下错误:

atl classes can only be added to mfc exe and mfc regular dll projects or projects with full atl support

......后者你认为atl项目会有,对吗?

任何人都可以提供修复吗?

(我在创建项目时尝试过滴答和解开'支持COM + 1.0' - 我不太清楚如何处理这个选项)。

答案

添加“新项目...”而不是添加“类...”。然后,您可以选择一个ATL选项。

另一答案

有趣的是你的链接:“如何在Visual C ++中创建ActiveX DLL”没有任何关于创建ATL项目的信息:)

无论如何:文件 - 新 - 项目 - ATL - ATL项目 - 下一步 - 下一步 - 完成。 ATL项目准备就绪。

项目 - 添加类 - ATL - ATL简单对象 - 添加 - 填写类名称 - 完成。添加了ATL课程。

另一答案

我发现了this thread on msdn并尝试了所有建议的解决方案。唯一有效的是在javascript中识别'isAtlProject()'并将其设置为返回true。这让我进入了下一个对话框。

但是,创建该类之后,“添加方法”向导将无提示地无法将所有必需的代码添加到接口,标头和cpp文件中。我为此制作了another thread。原来后一个错误的原因是intellisense被手动禁用了(详见其他线程): - 对于今后有同样问题阅读这个问题的人,如果你先修复intellisense,也许你不必提交javascript?至少试试吧!

另一答案

如果您没有将项目创建为“ATL项目”。确保atdbase.h包含在stdafx.h中,然后使用以下代码将.cpp文件(任何名称)添加到项目中:

// ATLMod.cpp 
/* This is all that is needed to satisfy VS full ATL support requirement
   when adding  ATL items with the wizards.
   Just has to be present in the project.  Compilation not required.
   Can set "Exclude from build" property to Yes.
*/

#include "stdafx.h"

// ATLMod.h : Declaration of copy of DllMain.h
class CATLProject1Module : public ATL::CAtlDllModuleT< CATLProject1Module >
{
public:
} _AtlModule;

以上是关于Visual Studio:无法将ATL类添加到ATL项目中?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 WTL 和 ATL 添加到 Visual Studio C++ Express 2008

Visual Studio 2015 无法生成在 Windows XP 上成功注册的 ATL Dll

Visual Studio 2008 错误:ATL

我似乎无法将记录添加到 Visual Studio 中的数据库

Visual Studio Code,Java 扩展,如何将 jar 添加到类路径

为啥从 Visual Studio 2008 中删除了在新 ATL 项目中使用属性的选项?