请问如何在PB中调用COM组件

huangbo2002 2005-12-13 03:52:46
我用VC写了一个COM组件,且在VC的窗体下调试通过,现在想用PB调用COM组件,由于第一次接触PB,所以遇到了很多问题,希望有经验的朋友给些帮助。
1.如何在PB里调用COM
2.如何在安装时在注册表里注册

我是这样在pb里写的调用com的代码。
OLEObject comtest
comtest = CREATE OLEObject
comtest.ConnectToNewObject("***.dll")
int res = -1
res = comtest.init()
if res = 1 then
MessageBox("Message","服务器存在")
open(client_test)
else
MessageBox("Message","没有加密狗")
end if
参考了其他的一些信息才瞎编出来的代码。

run("regsvr32 **.dll") 如何使用。

谢谢。
...全文
1743 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lzheng2001 2005-12-15
  • 打赏
  • 举报
回复
关键是你要知道DLL注册后在系统中的名字

comtest.ConnectToNewObject("注册后的类的名字")
byfq 2005-12-14
  • 打赏
  • 举报
回复
//Connect to the object using its Program ID or CLSID.
//调用例子如下
OLEObject EmpObj Integer li_rc EmpObj = CREATE OLEObject li_rc = EmpObj.ConnectToNewObject("PBcom.employee") IF li_rc < 0 THEN DESTROY EmpObj MessageBox("Connecting to COM Object Failed", & "Error: " + String(li_rc)) Return END IF
//但是pb只能调用IDispatch接口的com,你要注意
huangbo2002 2005-12-14
  • 打赏
  • 举报
回复
//ll_result = PBObject.ConnectToNewObject("PowerBuilder.Application")
//你要知道***.dll被注册成了什么名字


关于 ("PowerBuilder.Application") 能具体一点吗?是指在注册表里的名字吗?
给我举个例子好不好,我来模仿一下。


steelmqb1 2005-12-14
  • 打赏
  • 举报
回复
up
wu_07 2005-12-14
  • 打赏
  • 举报
回复
ll_result = PBObject.ConnectToNewObject("PowerBuilder.Application")


你要知道***.dll被注册成了什么名字
huangbo2002 2005-12-14
  • 打赏
  • 举报
回复
谢谢,那如何调用com呢?我写的代码似乎不对。
xiaoplx 2005-12-13
  • 打赏
  • 举报
回复
regsvr32 路径/**.dll

写入一个.bat文件
run("*.bat")

1,076

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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