COM逐步教程
2006-07-22 22:54:38 来源:WEB开发网在以下的例子中#import直接导入了AddObj.dll,而不是AddObj.tlb,因为我们将TLB文件包含于DLL之中了。否则的话,#import将导入TLB文件。
在VC++中创建一个新的控制台EXE,输入以下的内容并编译。
//
///Client.cpp
//
//客户端从AddObj.dll中使用COM对象的演示
//
#include <objbase.h>
#include <stdio.h>
#import "AddObj.dll"
//
//这里我们对DLL使用了#import,你也可以对.TLB使用#improt。
//#import直接在输出文件夹中生成了两个文件(.tlh/.tli)。
//
void main()
{
long n1 =100, n2=200;
long nOutPut = 0;
CoInitialize(NULL);
CodeGuruMathLib::IAddPtr pFastAddAlgorithm;
//
//IAddPtr并不是实际的IAdd指针,而是一个C++类模板(_com_ptr_t)
//它嵌入了原始的IAdd指针实例
//在析构的时候,析构函数内部会调用原始接口指针的Release()
//更进一步说,它还重载了operator ->来直接操作内部原始接口指针的所有方法
//
pFastAddAlgorithm.CreateInstance("CodeGuru.FastAddition");
pFastAddAlgorithm->SetFirstNumber(n1);//“->”重载的运行
pFastAddAlgorithm->SetSecondNumber(n2);
nOutPut = pFastAddAlgorithm->DoTheAddition();
printf("\nOutput after adding %d & %d is %d\n",n1,n2,nOutPut);
}
更多精彩
赞助商链接