注册 登录
编程论坛 VB6论坛

加载出现异常

天山雪域 发布于 2013-04-29 16:02, 711 次点击
打开一个系统是[local]1[/local]
点击是[local]2[/local]
问题出在哪?
我用的是完整的企业版
机子是WIN7
8 回复
#2
Artless2013-04-29 19:53
无图
#3
天山雪域2013-05-01 16:40
只有本站会员才能查看附件,请 登录
#4
天山雪域2013-05-01 16:40
只有本站会员才能查看附件,请 登录
#5
风吹过b2013-05-01 17:34
问题出在 WIN7 上面。
WIN7 加强了安全性,针对于不是放在 系统目录里的OCX,或者放在系统目录里的OCX,没有经过 安装程序注册的 OCX 文件一律禁止加载。
手动注册的OCX是无效的。

必须要用安装程序注册。必须是系统目录的。你这个OCX不是在 windows\system32里,WIN7不让加载,所以VB6报告不能载。
#6
wxflw2013-05-01 19:15
遇到过类似问题,下面是注册
Shell "regsvr32 COMCTL32.OCX /s", vbNormalFocus   '注释:注册控件,无弹出对话框
Shell "regsvr32 MSHFLXGD.OCX /s", vbNormalFocus   '注释:注册控件,无弹出对话框
Shell "regsvr32 COMDLG32.OCX /s", vbNormalFocus   '注释:注册控件,无弹出对话框
Shell "regsvr32 MSCOMCT2.OCX /s", vbNormalFocus   '注释:注册控件,无弹出对话框
上面几句你参照一下,关键看你是哪个控件需要注册


版主!问个问题!能不能用出错语句判断哪个控件没有注册的?例如:
On Error GoTo ErrA
ERRA:
if err = ( 控件未注册的错误代码或提示 ) then  
   。。。。执行相应出错控件的注册
end if

可以这么干吗?
#7
天山雪域2013-05-01 20:32
回复 5楼 风吹过b
那请教一下,应该怎样做呢?
#8
风吹过b2013-05-01 20:54
版主!问个问题!能不能用出错语句判断哪个控件没有注册的?例如:
On Error GoTo ErrA
ERRA:
if err = ( 控件未注册的错误代码或提示 ) then  
   。。。。执行相应出错控件的注册
end if

可以这么干吗?

不能。VB6加载OCX在各种事件之前,所以,报错时,还没有执行到自己写的代码部分。

那请教一下,应该怎样做呢?

删除你源代码所在目录的 OCX ,然后检查 windows\system32 目录下有没有这个OCX,如果没有,找到这个OCX的独立安装文件或包含这个OCX的软件安装一下。针对 WIN7 ,目前我找到的只有这种的方法 。
如果是XP,那么这些都不是问题。直接放到源代码或EXE文件所在目录,就可以自动找到的。
XP下面加载的顺序是:APP.path 、windows\system32 ,
WIN7下面的加载顺序是:windows\system32 ,并且要求安装程序注册,而不手动调用 regsvr32 进行注册。
#9
wube2013-05-02 00:36
问题出在 WIN7 上面。无误

自订控件或库函式...
系统32位有管理者权限就还好~64位就比较麻烦了~
网路上找到对付64位的方法~不一定都适用~
唯一百试百灵的方法~就是利用XP做MSI封装先帮OCX或DLL注册~
1