WEB开发网
开发学院软件开发VC COM逐步教程 阅读

COM逐步教程

 2006-07-22 22:54:38 来源:WEB开发网   
核心提示: 在以下的例子中#import直接导入了AddObj.dll,而不是AddObj.tlb,COM逐步教程(10),因为我们将TLB文件包含于DLL之中了,否则的话,//void main() { long n1 =100, n2=200; long

在以下的例子中#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);
   }

上一页  5 6 7 8 9 10 

Tags:COM 逐步 教程

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接