COM 接口指针是如何工作的?
How does the COM interface pointer work?
我是 COM 编程的新手,几年前正在阅读其他人的代码。我感到有些费解。
头文件中声明了一些接口指针。例如,m_pPhone 以黄色突出显示。
声明后,m_pPhone似乎没有得到任何值或赋值或初始化。
但它是用来获取m_pPhone->PhoneMode值的。价值从何而来?该项目被编译为 DLL。我没有在项目 属性 中找到任何包含的库。平台是Windows7.
新增:VS2010提示信息显示定义,但按F12或按findstr CMD,找不到它。
m_Phone
是由#import
. This directive will create, at build time, some .h files in the build folders and these files will in turn be compiled into your project, see Header Files Created by Import编译器生成的COM智能指针。
通常通过调用 CreateInstance
将值分配给智能指针,但也可以通过其他方式分配(例如,通过 COM 智能分配方法 return 甚至QueryInterface 调用)。您必须始终牢记,此处发生的实际操作是 COM 并遵循 COM 规则,编译器支持只是隐藏它并使其看起来像普通的 C++ 语法。
我是 COM 编程的新手,几年前正在阅读其他人的代码。我感到有些费解。 头文件中声明了一些接口指针。例如,m_pPhone 以黄色突出显示。
声明后,m_pPhone似乎没有得到任何值或赋值或初始化。
但它是用来获取m_pPhone->PhoneMode值的。价值从何而来?该项目被编译为 DLL。我没有在项目 属性 中找到任何包含的库。平台是Windows7.
新增:VS2010提示信息显示定义,但按F12或按findstr CMD,找不到它。
m_Phone
是由#import
. This directive will create, at build time, some .h files in the build folders and these files will in turn be compiled into your project, see Header Files Created by Import编译器生成的COM智能指针。
通常通过调用 CreateInstance
将值分配给智能指针,但也可以通过其他方式分配(例如,通过 COM 智能分配方法 return 甚至QueryInterface 调用)。您必须始终牢记,此处发生的实际操作是 COM 并遵循 COM 规则,编译器支持只是隐藏它并使其看起来像普通的 C++ 语法。