关于COM技术大讨论的总结(3)-------制作简单的COM程序
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