经常使用VB的人都知道,只要是用到了“引用”或者“部件”,编译出来的程序就必须带有这些关联的文件。这些文件要么放在与程序相同的目录下,要么敢在system32目录下,系统就会自动为我们注册关联的文件。一旦系统没有找到相应的文件,运行程序时就会报错。就这点来讲,VB的可移植性还是相对较差的。
刚接触VB的大家们会好奇这些到底是什么文件,我顺便介绍一下常见的两种文件格式:(1).ocx文件,控件文件,VB中各种控件的加载。用户可以自己开发,封装成.ocx控件;(2).dll文件,动态链接库文件,既可以用作控件,也可以引用到程序中来。多数情况下,引用就是为了调用库文件中的某些函数。
或许大家们会和我一样苦恼,好不容易写个东西出来,还要带着这么多家眷,多麻烦啊!正巧最近泡论坛,淘到了PowerWrap,就让我们用它来搞定VB的家眷。
VB-PowerWrap是对编写VB程序时用来给系统文件dll、ocx打包发布的程序,打开安装包,一路Next就行了,我不多说了。在使用前,先编译出写好的程序,然后点击程序的VB Project按钮,接着在弹出的窗口中点击右上角的小图标,来打开刚才编译的EXE文件。
打开后又会弹出对话框来打开源程序的Vbp文件,打开两次后,稍等一会儿就可以看到与程序相关联的dll、ocx文件了。在最下方我们也可以选择项目类型(Seject Project Type),默认为VB6。那个Delete按钮,可以把我们不想要封装的文件剔除掉。按下Done就可以完成文件的加载,返回到主界面。在主界面可以清空(Clear)刚才要封装的那些文件,也可以添加(Add)、删除(Delete)文件。最后,选择一个优化模式、大小优化(Size)或者速度(Speed)优化,然后按Make即可封装文件。怎么样,简单吧?对于像我这样好奇的,还可以在压缩率(Compression)选项中调整压缩比的高(High)低(Low)。制作出文件后,还可以看看图标(Stats),看看封装的情况。
可惜程序在封装完成后加了PECompact壳,必要的话,大家可以脱掉它。其实我看好的不是它的封装,而是分析VB程序所关联到的dll、ocx文件。知道了关联的文件,我们完全可以自己搞定它了。将关联文件作为资源(RES)加载到VB的资源管理器中,建立一个模块。调用模块将资源输出,然后加载Form窗体即可。再给出一段代码,如果信不过程序,大家自己搞定吧!
最后将启动对象设为Sub MainO即可。