再次请教ActiveX EXE,为什么同样的代码,我本地机器能正常使用。换一个机器就失效了呢?

applehoo 2011-09-26 08:11:41
我用vb建立了一个AcitveX EXE,在本机VB编译环境下编译后,用vbscript调用,没有任何问题。可是一换个机器后,无论是注册组件,制作安装(用setupfacotry7.0)还是手动输入xxx.exe /regserver,均无法在vbscript中正常调用,请问各位达人,这是什么情况呢?下面分别是vbscript和bas类代码:

这个AcitveX主要的控件是基础的vb控件,按钮、框架、还包含sstab,另外一个额外的abook.tlb已经在引用中引用了。它主要的作用是提供world类型。

dim MenuObject

MenuObject = empty

'''------------------------------------------------------
Sub ShowError (sMessage)
world.ColourNote "white", "red", sMessage
end sub
'''------------------------------------------------------
'''------------------------------------------------------
Sub Oninstall()

dim X, Y, width

if isempty (MenuObject) then
set MenuObject = nothing
end if

if MenuObject is nothing then
On Error Resume Next
set MenuObject = createobject ("my_menu.Bar")

if Err.Number <> 0 Then
ShowError Err.Description
ShowError "Cannot execute bar display program"
ShowError "Check it is installed."
Exit Sub
end if

On Error GoTo 0

MenuObject.SetTitle world, world.WorldName
''----vbscript调用到这里就出错,提示是“类型不匹配”不清楚咋回事?无论怎么处理(注册,安装,重新在该机器编译均不成。但是在本地机器完全正常。
end if

end sub


bar.bas


Option Explicit


Sub SetTitle(callingworld As World, title As String)
Quickmenu.Caption = title
Set theworld = callingworld
End Sub
Private Sub Class_Terminate()
End
End Sub

...全文
54 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
applehoo 2011-09-27
  • 打赏
  • 举报
回复
请大侠指点,我具体哪个控件没有注册?你是说abook.tlb吗?还是sstab哪个。这两个我都用factory打包了,难道还不算注册吗?另外要是abook.tlb没注册,怎么注册tlb文件呢?
ningweidong 2011-09-27
  • 打赏
  • 举报
回复
你用的那个控件没有注册,就这么简单
applehoo 2011-09-27
  • 打赏
  • 举报
回复
tabctl32.ocx,就是这个文件吧。我用setup factory打包的。里面包含这个文件哦。
bcesldln 2011-09-27
  • 打赏
  • 举报
回复
如果ocx控件是你手动添加到setup factory里的,setup factory默认安装时是不会对它进行注册的,你可以在setup factory中双击控件,在“高级”→“OLE/ActiveX”中看看是否打勾了,或者手动在目标机上注册,运行 regsvr32 path即可(path为控件的完整路径)。而tlb文件不需要注册,只要把它和你的exe文件放在一起就可以了。
另外:
检查一下目标机上控件和你打包的控件版本是否一致。
zzyong00 2011-09-26
  • 打赏
  • 举报
回复
打包了sstab了吗?

7,763

社区成员

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

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