我的VB工程有近300个窗体,不含图片
代码量很大,结果编译出来的文件有14M多,感觉很不爽
我觉得应该有一种方法,可以把它做成一个主文件(exe)加若干个支持文件(如DLL等)的组合,(我的运行目录只有一个exe文件,我看别的商业软件好象有好多个文件在运行目录啊)
大家说说应该怎么处理呢?

解决方案 »

  1.   

    我没有用MDI啊,怎么把窗体做到DLL中?
    我有300多个窗体,岂不是运行目录中的文件多得上天?
      

  2.   

    你可以把窗口和图片放到DLL去的呀!
      

  3.   

    晕哦,嘛程序需要300个窗体啊????????不管用你什么法子,最后再用EXE压缩工具压缩一下
    如ASPack等
      

  4.   

    to: EyZ(EyZ) 
    我不会调用,给我一个例子好吗?
      

  5.   

    将公用的函数过程放到模块中
    自己可以封装数据库操作的类减少代码量或者将一部分模块单独做成exe文件
    然后在主程序中调用
      

  6.   

    300个窗体用户如何使用啊,不知道Word有没有这么多?我建议按功能分成几个程序,类似office套件。
      

  7.   

    做成ActiveX DLL库,相当于编一个类。在类的内部可以调用DLL工程内的其它窗体。这样你就可以通过设计类来实现接口暴露。主程序只要引用你的DLL,然后创建这个类就可以了。需要交互的话就直接把窗体对象引用作为公共变量或者函数返回值传递给主程序。
      

  8.   

    把一些不常用或重复使用的写成DLL调用
    还可以对对它加压缩壳处理
      

  9.   

    作成多个exe不能算是好方法
    我也想把窗体做成dll,可是,VB工程中如何创建一个带窗体的dll?
    如果能创建成,那么,怎么来引用?又如何处理写在MOD中的SUB和Function?
    倒是可以把MOD中的代码做成DLL,但是MOD不太多,仅20余个,去掉它也只是少了几K而已
    另外,这个工程中的按钮采用图形按钮,所以还是占用了一些空间,粗略估计大概占用了4M左右
    代码量应该是在10M左右
      

  10.   

    用UPX压一下不就行了。只要是图片太多了吧
      

  11.   

    以前讨论过这个问题。请参考:
    http://expert.csdn.net/Expert/TopicView1.asp?id=2871394
      

  12.   

    300?
    你在做什么东西?
    把该节省的窗体就节省下来
    或是合并
    然后用Aspack压缩一下
      

  13.   

    将那个EXE用二进制分成1万份,每份绑定一套三级片,做个种子上传
      

  14.   

    偶想说的被别人抢先说了,下载个ASpack给你的EXE脱壳吧!
      

  15.   

    好嚇人呢,三個多個窗體.下次做的時候記得規划一下,
    我想三百多個窗體一定有很多代碼是可以共用的.
    也做了這么多了,一下子改是不方便的.一. 你先建立一個 Activx DLL,然后把你的這些窗體添加到dll里面來.
    二. 在你事先的那個工程里面引用 DLL,就可以了.
    三. 你可以查一下MSDN上面有這樣的例子.
      

  16.   

    我最多才二十几个,那时头已有点晕
    想信楼主IQ一定很高或者你们的项目规划的IQ太底!
      

  17.   

    不是项目规划的问题,主要是系统太大,几乎涵盖了客户的所有的业务
    确实有一些代码是通用的,大都已经写在MOD中,由窗体来调用
    其它可以合并的窗体不太多,而且如果合并,则在项目维护和管理中要付出一定代价,有点得不偿失
    系统中所应用到的图片统一调用硬盘中的图片,只在form_load时才加载,所以省不出什么图片来
    最好的方法应该是把各个窗体做成DLL,然后由一个主窗体来实例化并使用
    可我不知道方法建立active dll时,并没有窗体啊,只有代码界面希望大家帮忙,一定给分
      

  18.   

    我想问问,为什么要把它压缩?
    14MB的exe不可以运行么?运行得慢么?我想加载你的程序肯定没有启动"晕倒死"那么慢吧?
    既然系统大了,exe大点不好么?起码可以告诉接头人,呀呀,我用了好多时间好多心机才搞出来的!你看主程序都这么大~!不会是想用软盘装下去吧??? 那就,UPX Max + RAR Max!试试吧~既然做得出来了,规划肯定少不了.无谓再改里面的什么~
      

  19.   

    Dim NewForm1 As Form
      

  20.   

    to:qyii
    原则上说,程序大了倒也没什么,但是,程序运行时14M的东西都要进驻内存
    对于一个128M运行win2k的电脑来说,属于比较大的系统消耗,实不足取
    另外,如果你看到一个14M的程序,会认为这是一个很不错的软件吗?to:dongge
    能说的详细一点吗?
      

  21.   

    不必用300form,每个form上可多做一些图片框,把其他form的控件移到上面。
    exe也可加壳压缩