小弟先谢谢各位!小弟的操作系统是windows2003,小弟在自己的机子上做了一个登陆器.不用想当然是在window2003编译的,编译完以后在不同的操作效果不一样.在我的机子运行一定问题都没有.在XP机子上用也几乎没有问题.好像在windows2000下运行.有的机子会弹出来一个对话框显示的是"Run-tinme error'13'
    Type mismatch"
有的windows98操作下系统能用运行起来.但是登陆器的窗口显示不完整.
但是小弟在程序中用到的所有DLL文件和OCX文件都跟EXE可执行文件放到一块了呀!按说没问题,小弟捉摸不清楚是那里的问题.
请各位大侠及版主指点,谢谢!小弟着急.

解决方案 »

  1.   

    通过打包看看用到了哪些dll。可能有遗漏。
    将你的程序在教低的版本上大包。一般以便在更高系统中使用。
      

  2.   

    //但是小弟在程序中用到的所有DLL文件和OCX文件都跟EXE可执行文件放到一块了呀!按说没问题,小弟捉摸不清楚是那里的问题.你的dll和ocx可能在其它机器上没有注册(注册方法:在运行中输入:regsvr32 你的文件的绝对路径)也可能是调用dll或ocx的版本冲突另外,建议你生成安装程序最后,看一看是不是病毒造成的
      

  3.   

    使用vb的打包工具
    或者Setup Factory6打包
    然后安装建议你用Setup Factory打包,以下连接是相关的文档
    http://www.hot518.com/yjxz/soft.asp?id=1064 Setup Factory V6.03 汉化补丁
      

  4.   


    在Setup Factory中可以对文件进行注册
    用工具Edit-Add Files选中你需添加的文件加入打包文件中在主窗体中该OCX上单击右键,选中File Properties项,在Advance标签页中勾选中DllRegisterServer项即可在安装时自动注册在General标签页中的Install file to编辑框中写入 %sysdir% 表示安装于系统目录system32下另:在Install File to中写入 %AppDir%表示安装于exe文件目录中Setup Factory工具中有两个工具项很有用Tools菜单中的Scan Dependencies项和 Scan Visual Basic Project项前者可通过将EXE文件或DLL、OCX文件引入查找到相关的所有文件,后者可将VB的工程引入,查找相关的所有文件
      

  5.   

    这里高手真是多哦!!学习,学习!!我司的系统在win2000下打包(当然用installShield),
    在win98的系统中用。也可以用呀!!主要是:
    1、打包时一定要把必要的ocx与dll加进来。
    2、最好编译成exe文件。
    3、对于外加控件一定要注册(regsvr32 app.path & "名字")
    -----------//你的问题,上面说了有可能是ocx与dll冲突,因为对于win98以上的系统的对于VB来讲,有VB的类库。可能是冲突吧。哈哈。学习,学习。
      

  6.   

    建议每个Form代码页前加上Option Explicit。
    类型丢失,可能是由于没有定义引起的。
      

  7.   

    还有部分的dll和ocx文件,如果没有注册或者不在系统文件夹下,都很容易出现类型13的错误。
    建议把公用dll、ocx放在system32(winnt)或者system(win98)下再注册就不会出问题了
      

  8.   

      编译VB组件,我建议在在 NT4 操作系统,编译后的程序对不同平台的兼容性最好。