我用PB 写了一个 com 组件,JAVAscript 调用,在本机 用 regsvr32 注册成功以后, 调用com组件里的函数正常,但换到别的机器上,注册成功了,但调用的时间提示: 不能创建对象,我以为是缺少 PB 的DLL 问题,把C:\Program Files\Sybase\Shared\PowerBuilder 这个目录下的 DLL 全部都拷贝到 ,com 组件所在的目录下了,可在别的机器上还是不行。
以下是javascript 代码:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
</APPLET>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT=""> <script language="javascript"> function Connect()
{
var iRet = czjm_ylk.testmes(); }
</script> </HEAD> <BODY>
<INPUT TYPE="button" name = "testbutton" value = "测试调用 COM 组件" onclick = Connect(); >
</BODY>
<OBJECT id=czjm_ylk codebase="../../js/SLE300.CAB" style="LEFT: 0px; WIDTH: 0px; TOP: 0px; HEIGHT: 0px"
classid=clsid:7ECBB0B1-34E6-4103-817E-B616ED53B10F> <PARAM NAME="_Version" VALUE="65536">
</HTML>
以上是调用的代码,我在本机试都可以,换一台没有PB的机器就不行了。以为是缺少DLL的问题,把DLL复制过去还是不行,又用PB 写了一个调用 COM 组件的测试,在本机调用可以,在其它机器上调用也可以。以下是调用COM测试按钮下的代码:
int result
OLEObject myoleobject
myoleobject = create OLEObject
result = myoleobject.connecttonewobject('PB90.n_mypbcomapplicationname') if result = -2 then //没有注册则注册dll messagebox('提示','注册组件时出错,请于厂家联系') else
if result < 0 then
messagebox('提示','组件调用错误')
end if
end if if result >=0 then
myoleobject.testmes()
messagebox('提示','已找到组件,可以调用一下试!!!!!!!!!可以调试一下!!!')
end if
以下是javascript 代码:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
</APPLET>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT=""> <script language="javascript"> function Connect()
{
var iRet = czjm_ylk.testmes(); }
</script> </HEAD> <BODY>
<INPUT TYPE="button" name = "testbutton" value = "测试调用 COM 组件" onclick = Connect(); >
</BODY>
<OBJECT id=czjm_ylk codebase="../../js/SLE300.CAB" style="LEFT: 0px; WIDTH: 0px; TOP: 0px; HEIGHT: 0px"
classid=clsid:7ECBB0B1-34E6-4103-817E-B616ED53B10F> <PARAM NAME="_Version" VALUE="65536">
</HTML>
以上是调用的代码,我在本机试都可以,换一台没有PB的机器就不行了。以为是缺少DLL的问题,把DLL复制过去还是不行,又用PB 写了一个调用 COM 组件的测试,在本机调用可以,在其它机器上调用也可以。以下是调用COM测试按钮下的代码:
int result
OLEObject myoleobject
myoleobject = create OLEObject
result = myoleobject.connecttonewobject('PB90.n_mypbcomapplicationname') if result = -2 then //没有注册则注册dll messagebox('提示','注册组件时出错,请于厂家联系') else
if result < 0 then
messagebox('提示','组件调用错误')
end if
end if if result >=0 then
myoleobject.testmes()
messagebox('提示','已找到组件,可以调用一下试!!!!!!!!!可以调试一下!!!')
end if
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货