菜单   文件-> 生成XX.exe 这样生成的程序为何在没有装vb的机子上运行,一运行就出现一个黑色dos框还报错,怎样才能发布一个能在没有vb的机子上运的程序呢,我的程序只有一个form和两个text及两个botton
这样生成的程序为何在没有装vb的机子上运行,一运行就出现一个黑色dos框还报错,怎样才能发布一个能在没有vb的机子上运的程序呢,我的程序只有一个form和两个text及两个botton

解决方案 »

  1.   

    得打包安装才行
    有了vb的运行环境就能运行了运行vb自带的打包安装向导打包 虽然不好用
      

  2.   

    用VB自带的打包工具Package & Deployment Wizard打包就可以了,比较简单
      

  3.   

    推荐用 VB-PowerWrap 封装有汉化版本 
      

  4.   

    开始---程序---Microsoft Visual Basic 6.0 中文版
    ----Microsoft Visual Basic 6.0 中文版工具---------Package & Deployment 向导
      

  5.   

    程序发布的时候,在程序目录里放个MSVBVM60.DLL,现在除了WIN98,应该都可以运行VB程序了。
      

  6.   

    我编了一个小游戏,想让它在好几台机子上运行,可那几台上没有vb。上面说“在程序目录里放个msvbm60.dll”就可以了,请问一下,怎样将这个文件放到想运行的机子上呢?
      

  7.   

    用VB自带的打包工具Package   &   Deployment   Wizard打包就可以了,比较简单
      

  8.   

    还没明白啊,把你用到了所有OCX控件+所有第三方DLL+MSVBVM60.DLL放在同一个目录下,然后打个RAR包,或做个安装包。就能拿到其它地方去用了。
      

  9.   

    现在WINDOWS 都自带VB 运行库,我在网吧,各个地方不打包,都可以运行,据说08年MS要解决这个问题,让VB 和
     C++ delphi 一样独立运行,期待吧
      

  10.   

    现在WINDOWS   都自带VB   运行库,我在网吧,各个地方不打包,都可以运行,据说08年MS要解决这个问题,让VB   和 
      C++   delphi   一样独立运行,期待吧
    ------------------------
    晕,怎么可能?微软不是不再对VB6提供支持了吗?
    就算你说的是VB.NET,人家本来就是和其它.net语言一样,编译后,只需要目标机装了.net运行包就可以运行的了。
      

  11.   

    只在程序目录里放个MSVBVM60.DLL可能不行,如果有OCX控件之类的东东,可能要求注册的。最好是打包!然后在要运行的机器上安装打包文件。
      

  12.   

    你想“绿色”啊。。呵呵。。
    1、先在自己机器上打包,然后把用于重新打包那个文件夹里的OCX,DLL,复制备用。
    2、修改主程序为使用SUB MAIN启动。
    3、在SUB MAIN中注册所有OCX,DLL,在FRM的UNOAD事件注销OCX,DLL。【这里的实现方式有多种,可以使用SHELL REGSVR32 XXXX ,可以写成类似API的形式,以前我都是写成类似API的那种】
    4、重新编译,把刚编译的程序和上面备用的OCX,DLL放在同一目录压缩后发布即可。【建议用WINRAR写自解压文件,定义执行完毕后操作,这样可以创建快捷方式等】
    例如,要注册ComCtl32.OCX:
    Declare Function RegComCtl32 Lib "ComCtl32.OCX" Alias "DllRegisterServer" () As Long
    Declare Function UnRegComCtl32 Lib "ComCtl32.OCX" Alias "DllUnregisterServer" () As LongRegComCtl32 是我们自定义的函数名,什么样都可以。真的,不骗你。。你可以定义成…………Declare Function 注册ComCtl32 Lib "ComCtl32.OCX" Alias "DllRegisterServer" () As Long
    Declare Function 注销ComCtl32 Lib "ComCtl32.OCX" Alias "DllUnregisterServer" () As Long若函数【RegComCtl32、UnRegComCtl32】返回值为0,则成功,否则失败。那假如你还要注册MSVBVM60.dll(当然了,这个家伙根本不用注册,举例而已),你就再定义一组:
    Declare Function RegVb60 Lib "MSVBVM60.dll" Alias "DllRegisterServer" () As Long
    Declare Function UnRegVb60 Lib "MSVBVM60.dll" Alias "DllUnregisterServer" () As Long实际上,REGSVR32函数注册OCX或DLL时,也是调用其内部的DllRegisterServer、DllUnregisterServer而已。我们直接调用就行了,何必借助他人之手……以上!
      

  13.   

    补充一点,SUB MAIN应该先调用注册函数,而后调用加载窗体,伪代码如下:
    sub main ()
    注册OCX1
    注册OCX2
    ……
    LOAD FRM '此处可省略。
    SHOW FRM
    end sub若你只注册,而不注销,则无需声明注销函数。