【问题标题】:How to add a static method into ATL object?如何将静态方法添加到 ATL 对象中?
【发布时间】:2015-07-13 16:31:36
【问题描述】:

我正在尝试在链接http://www.codeproject.com/Articles/505791/Writing-Simple-COM-ATL-DLL-for-VS 之后编写一个简单的 COM/ATL DLL,但它没有提到如何向 ATL 对象添加 静态方法

我可以向 ATL 对象添加静态方法吗?

谢谢和最好的问候!

【问题讨论】:

  • ATL C++ 类的静态方法 - 就像任何其他 C++ 类一样。 COM 类或 COM 接口的静态方法 - 没有静态方法。
  • 静态 C++ 方法无法通过接口公开,因此无法从客户端代码中使用。 C++ 中的接口方法需要使用 virtual 关键字来模拟,这与静态方法相反。您可以向 ATL 类添加静态方法,只需使用文本编辑器即可。请注意,您可以在 IDL 中使用 [appobject] 属性,一些运行时环境(如 VB6 和 VBA)支持这一点。
  • @HansPassant - 感谢您的解释。我明白了。
  • @RomanR。 - 谢谢。

标签: visual-c++ com static-methods atl dllexport


【解决方案1】:

当您对 ATL 类使用类向导时,您只能选择将方法添加到 COM 接口。当您想要添加 COM 接口中没有的内容时,您必须手动修改该类。

所以你只需在头文件中添加带有文本编辑器的静态方法,当然你必须在 .cpp 文件中添加实现。

【讨论】:

  • 感谢您的回答!
猜你喜欢
  • 2014-08-13
  • 2014-08-11
  • 1970-01-01
  • 1970-01-01
  • 2013-01-16
  • 2012-10-22
  • 2011-08-15
  • 2011-04-07
  • 1970-01-01
相关资源
最近更新 更多