这是MSDN评论中的文字:“根据 ATL Internals (2ed) 一书,属性的使用已被弃用,并且不应在新的 ATL 项目中使用。”

但为什么?!!

有帮助吗?

解决方案

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

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

其他提示

本书的附录D对此进行了介绍。

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

  • 调试属性生成的代码或属性与代码之间的交互
  • 无法控制生成的代码
  • 错误,特别是在连接点周围
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top