我生成了一个 uType.OCX 文件,project 名为:uTypeuType 中有一个 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

解决方案 »

  1.   

    @@@@@@@@@ 接下来,好戏来了!@@@@@@@@@@@@@@@@@@@@
    我有两部电脑:pc1 和 pc2 ,装的都是同一个版本 xp ,而且都装了 vb61. 我在 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文件在另外一台机都可以运行!
      

  2.   

    $$$$$$$$$$$$ 原因分析 $$$$$$$$$$$$$$$$$$$$$$
    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 发现它们有一小部份内容不同,因为是机器码,我也看不懂不同的部份是什么东西
      

  3.   

    @@@@@@@@@@@@ 重大悬疑 @@@@@@@@@@@@@@@@@@@@@@@
    1. exe 文件只认“生母”,说明运行环境有区别,而且与硬件环境无关
    2. 这样看来,vb6 编译时可能产生了不为人知的而 exe 文件依赖的环境文件,或在注册表中设置了某些值
    3. 但是,我用多种 vb 打包工具打包到其它机运行,现象依旧
    4. 我用文件操作跟踪器及注册表跟踪器跟踪 exe 的运行,把注册项及可颖文件拷到另外机上及注册,现象依旧
      

  4.   

    如果各位有兴趣研究的话,不妨下载源码看看
    下載地址:
    http://download.csdn.net/filedown/aHR0cDovL2RsMi5jc2RuLm5ldC9kb3duNC8yMDA3MDkwNi8wNjAxMTAyNTU1OS5yYXI=!243230
      

  5.   

    一个问题不要多发
    http://community.csdn.net/Expert/topic/5745/5745101.xml?temp=.319668