VC中COM库初始化失败,为什么???

VC中COM库初始化失败,为什么???,第1张

if(CoInitialize(NULL)==S_OK)

{

AfxMessageBox("初始化COM支持库失败")

exit(1)

}

这意思不是说初始化成功返回失败吗,你判断条件错了吧

该方法实现步骤如下:

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中定义,所以还要包含对该头文件的引用,才可以使程序正常运行。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11864709.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存