WEB开发网
开发学院软件开发VC COM 组件设计与应用(九)——IDispatch 接口 for V... 阅读

COM 组件设计与应用(九)——IDispatch 接口 for VC6.0

 2006-07-22 22:56:02 来源:WEB开发网   
核心提示: 3-6:启动 ClassWizard,选择 Automation 卡片,COM 组件设计与应用(九)——IDispatch 接口 for VC6.0(3),准备建立函数3-7:添加函数,我们要写一个整数加法函数Add(),正确编译后,MFC不象ATL那样会自动注册,3-8:再增加一个转换字

3-6:启动 ClassWizard,选择 Automation 卡片,准备建立函数

3-7:添加函数。我们要写一个整数加法函数Add()。

3-8:再增加一个转换字符串大小写的函数 Upper()。函数返回值是 BSTR,这个没有什么疑问,但参数类型怎么居然是 LPCTSTR?在 COM 中,字符串不是应该使用 BSTR 吗?是的,是应该使用 BSTR,但由于我们是用 MFC 写自动化组件,它帮我们进行 BSTR 和 LPCTSTR 之间的转换了。

3-9:好了,下面开始输入程序代码:

long CDispSimple::Add(long n1, long n2)
{
  return n1 + n2;
}
BSTR CDispSimple::Upper(LPCTSTR str)
{
  CString strResult(str);
  strResult.MakeUpper();
  return strResult.AllocSysString();
}

3-10:编译注册

如果上面的操作由于疏忽而发生了错误,那么你可以手工进行改正。

其一、步骤<3-6>的对话窗中有“Delete”操作;

其二、你可以打开 ODL 文件(注2)进行修改,修改时要特别小心函数的声明中,有一个[id(n)] 的函数序号,可不要乱了;

其三、同步修改 H/CPP 中的函数声明和函数体;

其四、在CPP文件中,根据情况也要修改 BEGIN_DISPATCH_MAP/END_DISPATCH_MAP()函数影射宏。

正确编译后,MFC不象ATL那样会自动注册。你需要手工执行 regsvr32.exe 进行注册,或者执行菜单“Tools\Register control”

上一页  1 2 3 4 5  下一页

Tags:COM 组件 设计

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