求任一 CB6 调用 COM+ 的例程

SCUM 2007-12-14 07:23:13
该 COM+ 中间件是用 VB 开发的
目前的问题是不知道在 CB6 中怎样调用 COM+ 组件
希望兄弟们能提供一个例程
例程能创建对象、调用接口、传递参数就行了

现在工程只能用 CB 做 网上找了很久 都没找到 CB 的实现 希望能在这里得到解决方法

...全文
97 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Waiting4you 2007-12-14
  • 打赏
  • 举报
回复
你把VB生成的东东放上来,然后说一下它的定义我们才好对症写个例程啊
Waiting4you 2007-12-14
  • 打赏
  • 举报
回复
如果是远程的,也要先得到类型库定义。 也就是上面所说的xxx_TLB.h,xxx_TLB.cpp

所有的代码都一样,唯一的区别是:
cp.CreateInstance(CLSID_Class1);
改成:
CoClass1::CreateRemote(L"机器名",&cp); //这里的CoClass1也是xxx_TLB.h定义的,另外还要服务器上用dcomcnfg设置好

如果楼主对这方面没多少基础知识,应该去突击学习一下COM和ATL。BCB使用的也是ATL。
SCUM 2007-12-14
  • 打赏
  • 举报
回复
十分感谢 Waiting4you 兄弟的热心解答
我这个情况有一点不同 我再说清楚点:

我要调的 不是分发到本地的DLL形式的COM组件
而是运行在远程服务器上的中间件 以COM+方式注册到本地的(在系统的组件服务中注册的)

是这种情况 所以一时不知道怎样下手
没有COM/DCOM/COM+的基础知识 万分汗颜...
ydlchina 2007-12-14
  • 打赏
  • 举报
回复
C++ Builder5高级技巧与范例配套代码,第七章,网上很多
ydlchina 2007-12-14
  • 打赏
  • 举报
回复
《C++Builder5程序设计大全》第16章 《COM编程》
该书网上有提供下载 的,还有源码下载
Waiting4you 2007-12-14
  • 打赏
  • 举报
回复
比如你的VB程序是这样的(通过建立ActiveX DLL):
代码:
Function GetString() As String
GetString = Now
End Function

生成vb.dll后,先注册到系统。(也可以用regsvr32 vb.dll命令)

现在是BCB的事了
1. Project->Import Type Library->Add... 找到vb.dll文件, 设置Unit dir name输出路径, 再"Create Unit"
2. 这时BCB会建立xxx_TLB.h,xxx_TLB.cpp,把xxx_TLB.cpp加入工程
3. 在主窗口上放一按钮,代码如下:
#include "vb_tlb.h"
void __fastcall TForm1::btn1Click(TObject *Sender)
{
TInitOle::Init(); // 这个实际上是调用了API CoInitialize,程序退出是会自动调用CoUninitialize,神吧? 有兴趣可以查看它的代码
_Class1Ptr cp; // 这个_Class1Ptr还有下面的CLSID_Class1是xxx_TLB.h里找到的(你的肯定不同),我试验的文件是在第81行和第75行。
cp.CreateInstance(CLSID_Class1); // 建立实例

if(cp)
{
WideString s;
cp->GetString(&s); // 调用GetString
Caption = s; // 现在窗体标题被更新成现在的时间
}
}

SCUM 2007-12-14
  • 打赏
  • 举报
回复
回楼上各位:

这个中间件我目前还没拿到
但是到时候它的接口定义之类的都会有说明

所以我是想求任意一个例程即可
不管是调什么
只要搞明白怎样创建 COM+ 对象实例 怎样调用其方法 怎样对其传入传出参数 即可

比如是在 ASP 里 我知道可以用 Server.CreateObject() 创建 等等

在 CB 里没有做过 目前也没有找到合适的资料

其实 似乎是一个很小的问题 做过一次 就能依葫芦画瓢了

谢谢各位 期待解决....


laowang2 2007-12-14
  • 打赏
  • 举报
回复
COM+ 组件发上来。

703

社区成员

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

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