Visual C++ 6.0 版本以上
Windows操作系统
已拥有的COM库,可以是简单的COM库
这里,你要知道你引用COM库的一些信息,比如他的IDL文件(一种接口描述语言文件)。为了引入这个,可以简单的使用include预编译命令:#include 'simpletest.h';也可以使用import命令引入dll:#import “Account.tlb” rename_namespace(“AccountDriver”) 。
初始化COM环境,这个过程是在把COM库引入程序。使用::CoInitialize(NULL)来完成。这一步是很多人忽略的,也是很多人错误的根本。
之后使用CoCreateInstance来创建对象的实例。
如果第3步成功,则可以调用其中的方法。
使用CoUnInitialize()来卸载COM库。
HRESULT hr; //定义结果
ISimpleInterface* pIntf = NULL; //定义一个指向对象的指针,下面那个函数将会对这个指针赋值。所以此处可以初始化为NULL。
hr = CoCreateInstance(CLSID_SimpleInterface, NULL, CLSCTX_SERVER , IID_ISimpleInterface, (void **)& pIntf);//具体参数的意义,可以参考MSDN,主要是第一个参数是COM的类ID,这个常量来源于第一步的易用。最后一个用于传入指向对象指针的指针,好对指向对象的指针赋值。
//判断是否成功, if(SUCCEEDED(hr)) { pIntf->Welcome(); //调用相应函数 pIntf->Release(); //这一步关键,相当于delete。 }END
对于步骤3,在对象使用完必须调用Release方法来释放,如果想自动完成的话,请使用ATL的智能指针,我会在其他章节里完成这个指针的使用说明。