在 Visual Studio 2017 年添加 ATL 简单对象
Add ATL Simple Object in Visual Studio 2017
我在 Visual Studio 2017 年处理一个旧的 ATL/COM 项目。
在以前的 Visual Studio 版本中,您可以 select "Add Class" 然后 select 选择 "Add simple ATL object" 添加 COM class该项目。此选项似乎在 Visual Studio 2017 年完全缺失。
选项被移动了吗?
我是否错过了安装选项?
Visual Studio 是否无法将我的项目识别为 ATL 项目? (它是用更旧的版本创建的。)
或者这是 ATL 之路的尽头?
我不确定这是否是一个答案,但评论太多了,不仅仅是对问题的编辑。
我在两个系统上测试过,
- Visual Studio 社区 2017,版本 15.1
- Visual Studio 专业版 2017,版本 15.3.2
而且我相信这两个版本之间的功能已经发生了变化。我认为这不太可能是社区版和专业版之间的区别。
在这两种情况下,我都创建了一个新的 ATL 项目并尝试了三种方法来添加 class:
- 从 Class 视图[=48= 的上下文菜单中添加 class... ]
- 从解决方案资源管理器
的上下文菜单中添加class...
- 从解决方案资源管理器
的上下文菜单中添加新项...
对于版本 15.1,添加 Class 打开以下对话框,我可以从中添加一个 ATL 简单对象。
对于版本 15.3.2,添加 Class 打开以下对话框,没有任何 ATL 简单对象选项。
但是,在版本 15.3.2 中,“添加新项”会打开以下对话框,其中包含一个用于创建 ATL 简单对象的新选项,该选项以前在此对话框中不可用。
所以,似乎功能已被移动。奇怪的是,它在 Class 视图中不再可用(我认为这是一个错误)。
此问题是由于Visual Studio 2017 的15.3 版本中项目模板和代码向导的更改引起的。
15.2及以上版本与15.3及以上版本操作流程有所不同。
解释此更改的博客文章如下。
Changes to Project Templates and Code Wizards in 15.3
虽然在release notes中被描述为一个项目,但是关注的人很少,具体是怎么回事还不得而知。
Visual Studio 2017 version 15.3 Release Notes
C++ 语言服务
项目和代码向导
•我们以签名对话风格重写了几个项目和代码向导。
•添加Class 直接启动添加Class 向导。 "Add > New Item".
下提供了之前位于此处的所有其他项目
•Win32 项目位于“新建项目”对话框的 Windows 桌面类别下。
•Windows 控制台和桌面应用程序模板现在无需显示向导即可创建项目。在同一类别下有一个新的 Windows 桌面向导,它显示与以前相同的选项。
我使用 Visual Studio 2015 版本 15.9.2 的经验是,我在添加 ATL 项目时必须取消选中 Security Development Lifecycle (SDL) checks
,否则当我添加简单 ATL 对象时,我会收到一个消息框错误 "did not find a .idl file in project name of my project"。
我在 Visual Studio 2017 年处理一个旧的 ATL/COM 项目。
在以前的 Visual Studio 版本中,您可以 select "Add Class" 然后 select 选择 "Add simple ATL object" 添加 COM class该项目。此选项似乎在 Visual Studio 2017 年完全缺失。
选项被移动了吗?
我是否错过了安装选项?
Visual Studio 是否无法将我的项目识别为 ATL 项目? (它是用更旧的版本创建的。)
或者这是 ATL 之路的尽头?
我不确定这是否是一个答案,但评论太多了,不仅仅是对问题的编辑。
我在两个系统上测试过,
- Visual Studio 社区 2017,版本 15.1
- Visual Studio 专业版 2017,版本 15.3.2
而且我相信这两个版本之间的功能已经发生了变化。我认为这不太可能是社区版和专业版之间的区别。
在这两种情况下,我都创建了一个新的 ATL 项目并尝试了三种方法来添加 class:
- 从 Class 视图[=48= 的上下文菜单中添加 class... ]
- 从解决方案资源管理器 的上下文菜单中添加class...
- 从解决方案资源管理器 的上下文菜单中添加新项...
对于版本 15.1,添加 Class 打开以下对话框,我可以从中添加一个 ATL 简单对象。
对于版本 15.3.2,添加 Class 打开以下对话框,没有任何 ATL 简单对象选项。
但是,在版本 15.3.2 中,“添加新项”会打开以下对话框,其中包含一个用于创建 ATL 简单对象的新选项,该选项以前在此对话框中不可用。
所以,似乎功能已被移动。奇怪的是,它在 Class 视图中不再可用(我认为这是一个错误)。
此问题是由于Visual Studio 2017 的15.3 版本中项目模板和代码向导的更改引起的。
15.2及以上版本与15.3及以上版本操作流程有所不同。
解释此更改的博客文章如下。
Changes to Project Templates and Code Wizards in 15.3
虽然在release notes中被描述为一个项目,但是关注的人很少,具体是怎么回事还不得而知。
Visual Studio 2017 version 15.3 Release Notes
C++ 语言服务
项目和代码向导
•我们以签名对话风格重写了几个项目和代码向导。
•添加Class 直接启动添加Class 向导。 "Add > New Item".
下提供了之前位于此处的所有其他项目
•Win32 项目位于“新建项目”对话框的 Windows 桌面类别下。
•Windows 控制台和桌面应用程序模板现在无需显示向导即可创建项目。在同一类别下有一个新的 Windows 桌面向导,它显示与以前相同的选项。
我使用 Visual Studio 2015 版本 15.9.2 的经验是,我在添加 ATL 项目时必须取消选中 Security Development Lifecycle (SDL) checks
,否则当我添加简单 ATL 对象时,我会收到一个消息框错误 "did not find a .idl file in project name of my project"。