用VB6编译成的EXE文件,运行时需要一个‘运行时’文件,即VB运行库.在VB6里是MSVBVM60.DLL在VB5里是MSVBVM50.DLL,VB5的这个文件在WIN98里是操作系统自代的。而VB6则没有,在用VB6的“Package & Deployment 向导”做安装程序时会自动打进去。
以上这些都不是问题,麻烦的是如果你在VB中用了‘数据库访问’组件,比如ADO和RDS,那么那个
“Package & Deployment 向导”会给你打入一个Mdac_typ.exe文件在里面,这是一个自解压文件,它有6M多。里面就是‘数据库访问’组件所需要的DLL文件等。但一般来说那些文件根本就不可能全是你写的程序都用到的。你可能只用到其中几个。因为VB6支持很多数据访问方法,你只要用其中一种就能写出一个很好的数据库访问程序。所以说,如果你把那个Mdac_typ.exe打入安装程序,你发布的安装程序最少也得有6M,而其中很多是你用不到的。
那么如果知道你到底需要哪些文件呢??我想出一个办法:在你机器上运行你写的程序,然后用WIN98自代的那个‘系统信息’来看看你运行你的VB程序时WIN98系统装入了哪些文件库。很简单:装入了哪些,就用哪些。
下面是具体做法:
1在WIN98里->程序->附件->系统工具->系统信息
2然后打开‘系统信息’后选那个树形中的‘已加载32位模块’
现在你所看到的就是系统当前用到的DLL和一些OCX文件, 还会有一些EXE文件。VB主要可能用的是DLL和OCX文件。运行上面两步时先不要启动你的VB程序以及其它的WIN98程序。这样我们得到的是一个最少的文库列表,以进与后面的列表比较。
3在右边的文件列表‘名称’里按SHIFT用鼠标选所有的文件名。然后选菜单的‘复制’并打开记事本将 ‘复制’的信息粘过来,并保存。如:first.txt
4打开你写的VB程序(我指的是已编译成EXE的程序)并使用它的所有功能(只是运行出来还是不够的,DLL文件是动太装入的,只有用到相应功能时才会装入),并且不要关你的程序。
5现在回到‘系统信息’里并按F5更新文件列表。这时所得到的列表就包括了VB所要用的运行库。然后你要重做上面的第3步。将它也保存。如:last.txt
6我们已经SAVE两个文件了,现在只要比较它们的不同就可以了。你可以打开那两个一边一个很眼一行行看,看看后来存的那个多了些什么。。。
也可以用 fc first.txt last.txt > diff.txt 来比。不过这样结果很乱。
总之以上方法就是根据程序运行时装入内存的文件库来确定,这个程序所必要的文件。
如果哪位更好的方法,请粘出来大家共看 ^_^