用ATL写的COM组件在VC里怎样使用
答案:1 悬赏:0 手机版
解决时间 2021-11-27 22:31
- 提问者网友:我一贱你就笑
- 2021-11-26 23:16
用ATL写的COM组件在VC里怎样使用
最佳答案
- 五星知识达人网友:山河有幸埋战骨
- 2021-11-26 23:38
该方法实现步骤如下:
1. 首先添加COM初始和终止代码。在应用程序类的初始化实例函数InitInstance()中添加如下代码:
CoInitialize(NULL);
……
CoUnInitialize();
上述语句运行在MFC框架/非MFC框架中,但由于本文程序使用MFC框架,所以也可以利用AfxOleInit()函数对其进行初始化。
2. 然后用#include 语句包含对组件头文件的引用并创建组件对象。在头文件中包含了接口的C++定义以及说明接口ID IID和类ID CLSID的符号化常量。创建工作在初始化对话框函数中进行:
IAccount pAccount=NULL;
……
CoCreateInstance(CLSID_Account,
NULL,
CLSCTX_INPROC_SERVER,
IID_Iaccount,
reinterpret_cast (&pAccount));
3. 最后释放组件对象。该工作应在程序退出之前完成,比如在消息WM_CLOSE的响应函数中进行:
if(pAccount!=NULL)
pAccount->Realease();
对该代码组件中的其他功能函数的调用,可以通过组件对象的接口指针pAccount来进行:
……
BSTR bstrResult;
PAccount-> Post(100,bstrResult);
SysFreeString(bstrResult);
……
由于COM支持类在comdef. h中定义,所以还要包含对该头文件的引用,才可以使程序正常运行。
1. 首先添加COM初始和终止代码。在应用程序类的初始化实例函数InitInstance()中添加如下代码:
CoInitialize(NULL);
……
CoUnInitialize();
上述语句运行在MFC框架/非MFC框架中,但由于本文程序使用MFC框架,所以也可以利用AfxOleInit()函数对其进行初始化。
2. 然后用#include 语句包含对组件头文件的引用并创建组件对象。在头文件中包含了接口的C++定义以及说明接口ID IID和类ID CLSID的符号化常量。创建工作在初始化对话框函数中进行:
IAccount pAccount=NULL;
……
CoCreateInstance(CLSID_Account,
NULL,
CLSCTX_INPROC_SERVER,
IID_Iaccount,
reinterpret_cast (&pAccount));
3. 最后释放组件对象。该工作应在程序退出之前完成,比如在消息WM_CLOSE的响应函数中进行:
if(pAccount!=NULL)
pAccount->Realease();
对该代码组件中的其他功能函数的调用,可以通过组件对象的接口指针pAccount来进行:
……
BSTR bstrResult;
PAccount-> Post(100,bstrResult);
SysFreeString(bstrResult);
……
由于COM支持类在comdef. h中定义,所以还要包含对该头文件的引用,才可以使程序正常运行。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯