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

Posted

技术标签:

【中文标题】为啥从 Visual Studio 2008 中删除了在新 ATL 项目中使用属性的选项?【英文标题】:Why the option to use attributes in new ATL projects was removed from Visual Studio 2008?为什么从 Visual Studio 2008 中删除了在新 ATL 项目中使用属性的选项? 【发布时间】:2010-09-08 04:43:09 【问题描述】:

这是来自 MSDN 评论的文本:“根据 ATL Internals (2ed) 一书,不推荐使用属性,不应在新的 ATL 项目中使用。”

但是为什么呢?!!

【问题讨论】:

【参考方案1】:

在 ATL 中,这些属性是一个编译器技巧。它们不像 C# 中的属性那样是平台的核心部分。它们也比宏更容易调试,而且转储生成的属性代码的方法很麻烦。

我怀疑另一个问题可能是 C++ 编译器兼容性和标准遵守。属性并没有使 C++ 代码更漂亮,也许这种语法可能会在未来版本的真正 C++ 标准中使用。

【讨论】:

【参考方案2】:

本书的附录 D 对此进行了说明。

属性化ATL需要编译器扩展,遇到的问题包括

调试属性生成的代码或属性与代码之间的交互 无法控制生成的代码 错误,尤其是在连接点周围

【讨论】:

以上是关于为啥从 Visual Studio 2008 中删除了在新 ATL 项目中使用属性的选项?的主要内容,如果未能解决你的问题,请参考以下文章

为啥visualstudio2008中文版.iso这个文件这么大呢?

为啥我在 Visual Studio 2008 的工具下没有调试选项?

为啥 Visual Studio 2008 在 C++ 代码中突出显示 internal 作为关键字?

为啥这样的 penAL 代码在 Visual Studio 2008 中会出现这样的错误?

当我构建我的项目时,Visual Studio 2008 没有创建 .exe 文件。任何想法为啥?

为啥我在visual studio 2008 VC++中运行一个Win32控制台应用程序后,弹出一个“没有找到MSVCP90D.dll”?