我是COM编程的新手,几年前正在阅读其他代码。我得到了令人费解的东西。 头文件中声明了一些接口poiters。例如,m_pPhone以黄色突出显示。
但它用于获取m_pPhone-> PhoneMode值。价值来自哪里?该项目编译为DLL。我没有在项目属性中找到任何包含的lib。该平台是Windows 7.
答案 0 :(得分:0)
m_Phone
是由#import
生成的编译器COM智能指针。该指令将在构建时创建构建文件夹中的一些.h文件,然后这些文件将编译到您的项目中,请参阅Header Files Created by Import。
通常通过调用CreateInstance
将值分配给智能指针,但也可以通过其他方式(例如,通过COM智能分配方法返回或甚至QueryInterface调用)来分配值。你必须时刻记住,这里发生的实际操作是COM并遵循COM规则,编译器支持只是隐藏它并使它看起来像普通的C ++语法。