关于COM技术大讨论的总结(3)-------制作简单的COM程序

wjzhuang 2001-05-25 10:05:00
加精
A.Hello World!
创建一个简单的COM服务器:

创建一个COM对象时,必须先创建一个ActiveX库或是应用程序来放置COM对象.这里使用应用程序
1.File | New Application 创建一个应用程序
2.File | New | ActiveX----COM Object
在CoClass中输入你的COM文件名.如TestCom
bcb打开Type Library Editor
3.在Type Library Editor看到ITestCom,用mouse右健单击它,在弹出菜单中选择New,再选择Method,
则看到Method1被加入,改名为SayHello, 然后换到Parameters,加入一个参数,取名为str,并把类型 设为BSTR.
4.单击Type Library Editor上的Refresh
5.在形成的文件TestCOMImpl.cpp中可以看到
STDMETHODIMP TTestCOMImpl::SayHello(BSTR str)
{
try
{
ShowMessage("Hello,World!");//加入处理语句
}
catch(Exception &e)
{
return Error(e.Message.c_str(), IID_ISimpleTestCOM);
}
return S_OK;
};
6.注册:
Run | Parameters,使用/regserver命令
生成的COM应该注册到系统中去
使用ActiveX Libray为进程内服务器,要使用Run | Register ActiveX Server来注册

创建一个COM客户程序

1.Project | Import Type Library
2.点击Add,选择刚才保存的.tlb程序,点击Install,接下来一路默认
3.在Project 中add刚才保存的***_Tlb.cpp文件(***为你保存的文件名)
4.在Unit1.cpp文件中inlcude ***_Tlb.h文件
5.处理事件如:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TCOMITestCOM TestCOMServer = CoTestCom::Create();
TestCOMServer->SayHello(WideString("wjzhuang"));//参数"wjzhuang"没什么作用
}

B.例子
回复人:holyfire(发了财的众神之焰) (2001-5-21 15:02:00) 得0分
COM编程实在复杂,在《C++ Builder 3核心编程技术》中有一个例子
C++ Builder 3核心编程技术
北京希望电脑公司
总策划 徐新华
编著希望图书创作室 审校

回复人:Raptor(猛禽) (2001-5-21 22:31:00) 得0分
别的不敢说,COM版的Hello world我还是写过一个,有兴趣请看:
http://mental.top263.net/mentals/progart/tech/bcb_com.htm
...全文
121 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
yiyilc 2001-06-22
  • 打赏
  • 举报
回复
我想学,但是太难了,学不会,怎么办呀
charlie_tang 2001-05-25
  • 打赏
  • 举报
回复
我只用BCB写过一个ACTIVEX,在PB中调用没有问题。
其实在BCB中写还是比较简单的,
用ACTIVEFORM,然后把处理放在窗口中,只需要定义属性,和一定的方法就行了。
charlie_tang 2001-05-25
  • 打赏
  • 举报
回复
我只用BCB写过一个ACTIVEX,在PB中调用没有问题。
其实在BCB中写还是比较简单的,
用ACTIVEFORM,然后把处理放在窗口中,只需要定义属性,和一定的方法就行了。
luhongjun 2001-05-25
  • 打赏
  • 举报
回复
COM正在学习,太难懂,咳。
BCB 2001-05-25
  • 打赏
  • 举报
回复
http://mental.top263.net/mentals/progart/tech/bcb_com.htm
其实是OLE automation,我知道CreateOleObject不能调COM,
可能作者也是半瓶醋吧
wjzhuang 2001-05-25
  • 打赏
  • 举报
回复
火哥,还是叫我小猪吧.
ActiveX/COM我去过了,问题没多少人回答.到哪去没什么希望的.
而且我是BCB 的人,这里厉害的人很多的.我喜欢这里.
其实,我并不是想要什么答案.
我只是想让大家讨论,同时也接触一些平时可能比较少去接触的东西.

holyfire 2001-05-25
  • 打赏
  • 举报
回复
猪哥为何不到ActiveX/COM版去问,却在这里问我们这些半调子呢。
wjzhuang 2001-05-25
  • 打赏
  • 举报
回复
那位兄弟又做过复杂的 COM程序?能谈谈吗?

552

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 茶馆
社区管理员
  • 茶馆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧