vb编译器很怪,CSDN高手如云,能解决此有关问题难找
vb编译器很怪,CSDN高手如云,能解决此问题难找!
我生成了一个 uType.OCX 文件,project 名为:uType
uType 中有一个 userControl(名为:aa)和一个类模块(名为:bb)
'---------bb.cls 的源码:-----------
public type hh
h1 as integer
h2 as string
end type
'---------aa.ctl 的源码:-----------
public sub hoho(fHh as hh)
msgbox fHh.h2
end sub
********下面是引用 uType.OCX 的 project(名为:tsType)********
tsType 有个 form,名为:mf
mf 上加了一个按钮(名为:command1)和一个 uType.aa 控件(名为:aa1)
'---------mf.frm 的源码:-----------
private sub command1_click()
dim myHh as uType.hh
myHh.h2= "haha "
aa1.hoho myHh '此行要特别注意,下面会提到!
end sub
@@@@@@@@@ 接下来,好戏来了!@@@@@@@@@@@@@@@@@@@@
我有两部电脑:pc1 和 pc2 ,装的都是同一个版本 xp ,而且都装了 vb6
1. 我在 pc1 上生成 tsType1.exe 并在 pc1 上运行,一切正常!
2. 我把 pc1 上的 uType.OCX 和 tsType1.exe 及支持文件拷到 pc2 上运行,现象如下:
只听到电脑发出“叮”一声,鼠标光标出现短暂漏斗,之后没有任何动静,进程里也没有出现 tsType1.OCX。
3. 我在 pc2 上生成 tsType2.exe 并在 pc2 上运行,一切正常!
4. 再把 pc2 上的tsType2.exe 拷回 pc1 上运行,现象如下:
只听到电脑发出“叮”一声,鼠标光标出现短暂漏斗,之后没有任何动静,进程里也没有出现 tsType2.OCX。
5. 即使进入同一电脑的另外一个 xp 系统(双系统)运行 tsType1.exe,现象依旧
6. *****更怪:如果删除 aa1.hoho.myHh 这行代码,任何一台电脑上生成的 exe文件在另外一台机都可以运行!
$$$$$$$$$$$$ 原因分析 $$$$$$$$$$$$$$$$$$$$$$
1. 同一个 uType.ocx 在 pc1 和 pc2 上都可以使用,说明 uType.ocx 是没问题的
2. tsType1.exe 能在 pc1上运行,tsType2.exe 能在pc2 上运行,说明 tsType 的 project 是没问题的
3. 只能在各自己生成的电脑上运行,说明 aa1.hoho myHh 这一行代码只认生成 exe文件的那部电脑
4. 我用二进制文件编辑器对比 tsType1.exe 与 tsType2.exe 发现它们有一小部份内容不同,因为是机器码,我也看不懂不同的部份是什么东西
@@@@@@@@@@@@ 重大悬疑 @@@@@@@@@@@@@@@@@@@@@@@
1. exe 文件只认“生母”,说明运行环境有区别,而且与硬件环境无关
2. 这样看来,vb6 编译时可能产生了不为人知的而 exe 文件依赖的环境文件,或在注册表中设置了某些值
3. 但是,我用多种 vb 打包工具打包到其它机运行,现象依旧
4. 我用文件操作跟踪器及注册表跟踪器跟踪 exe 的运行,把注册项及可颖文件拷到另外机上及注册,现象依旧
5. 天哪!
6. 没有高手?
7. 期望出现!
------解决方案--------------------
1、头晕
2、眼花
3、看时间
4、11点半
5、睡觉
6、明天再说
7、g.n
我生成了一个 uType.OCX 文件,project 名为:uType
uType 中有一个 userControl(名为:aa)和一个类模块(名为:bb)
'---------bb.cls 的源码:-----------
public type hh
h1 as integer
h2 as string
end type
'---------aa.ctl 的源码:-----------
public sub hoho(fHh as hh)
msgbox fHh.h2
end sub
********下面是引用 uType.OCX 的 project(名为:tsType)********
tsType 有个 form,名为:mf
mf 上加了一个按钮(名为:command1)和一个 uType.aa 控件(名为:aa1)
'---------mf.frm 的源码:-----------
private sub command1_click()
dim myHh as uType.hh
myHh.h2= "haha "
aa1.hoho myHh '此行要特别注意,下面会提到!
end sub
@@@@@@@@@ 接下来,好戏来了!@@@@@@@@@@@@@@@@@@@@
我有两部电脑:pc1 和 pc2 ,装的都是同一个版本 xp ,而且都装了 vb6
1. 我在 pc1 上生成 tsType1.exe 并在 pc1 上运行,一切正常!
2. 我把 pc1 上的 uType.OCX 和 tsType1.exe 及支持文件拷到 pc2 上运行,现象如下:
只听到电脑发出“叮”一声,鼠标光标出现短暂漏斗,之后没有任何动静,进程里也没有出现 tsType1.OCX。
3. 我在 pc2 上生成 tsType2.exe 并在 pc2 上运行,一切正常!
4. 再把 pc2 上的tsType2.exe 拷回 pc1 上运行,现象如下:
只听到电脑发出“叮”一声,鼠标光标出现短暂漏斗,之后没有任何动静,进程里也没有出现 tsType2.OCX。
5. 即使进入同一电脑的另外一个 xp 系统(双系统)运行 tsType1.exe,现象依旧
6. *****更怪:如果删除 aa1.hoho.myHh 这行代码,任何一台电脑上生成的 exe文件在另外一台机都可以运行!
$$$$$$$$$$$$ 原因分析 $$$$$$$$$$$$$$$$$$$$$$
1. 同一个 uType.ocx 在 pc1 和 pc2 上都可以使用,说明 uType.ocx 是没问题的
2. tsType1.exe 能在 pc1上运行,tsType2.exe 能在pc2 上运行,说明 tsType 的 project 是没问题的
3. 只能在各自己生成的电脑上运行,说明 aa1.hoho myHh 这一行代码只认生成 exe文件的那部电脑
4. 我用二进制文件编辑器对比 tsType1.exe 与 tsType2.exe 发现它们有一小部份内容不同,因为是机器码,我也看不懂不同的部份是什么东西
@@@@@@@@@@@@ 重大悬疑 @@@@@@@@@@@@@@@@@@@@@@@
1. exe 文件只认“生母”,说明运行环境有区别,而且与硬件环境无关
2. 这样看来,vb6 编译时可能产生了不为人知的而 exe 文件依赖的环境文件,或在注册表中设置了某些值
3. 但是,我用多种 vb 打包工具打包到其它机运行,现象依旧
4. 我用文件操作跟踪器及注册表跟踪器跟踪 exe 的运行,把注册项及可颖文件拷到另外机上及注册,现象依旧
5. 天哪!
6. 没有高手?
7. 期望出现!
------解决方案--------------------
1、头晕
2、眼花
3、看时间
4、11点半
5、睡觉
6、明天再说
7、g.n