MFC应用程序能否脱离运行时刻库独立运行
编号:QA000987
建立日期: 1999年5月15日 最后修改日期:2000年12月2日
所属类别:
Q
Prisoner:
使用的操作系统: PWin98
使用的编程工具: VC 6
遇到的问题:请问用VC++编写MFC应用程序时,能否将其编译为脱离运行时刻库独立运行的程序,如同Win32程序一样?谢谢。
A回答:
在VC的Settings中有一个设置,就是是否采用MFC DLL。
如果你使用Shared DLL方式,则生成的EXE非常小,但必须分发MFC42.DLL和MSVCRT.DLL。你也可以设置使用Static Library,这时不用分发这两个DLL,但是得到的EXE比较大。
另外,用AppWizard生成的工程里包含了两个设置:Win32 Debug和Win32 Release。而缺省激活的工程设置是Win32 Debug,用于调试。用这个设置编译出来的执行文件由于包含大量的调试信息,所以一般都要2M左右。真正发行的时候需要切换到Release模式下去重新生成。切换设置方式可以选择菜单Build|Set Active Configure...。会出来个对话框,在框中选Win32 Release模式,然后再重新编译。这样在工作目录下多出了Release目录,可发行的EXE也在这个目录里。一般Release模式下,静态连接的程序<600K。
但是如果你的程序中使用了OLE或ActiveX技术,你必须分发olepro32.dll。如果你编写的是数据库程序,必须分发相关的数据库DLL。
LikeWater问:
在vc6.0下,用AppWizard生成的工程只有两种模式:动态和静态,如何设置不使用MFC DLL,并且我的程序用了ActiveX,如何分发相应的DLL.
答:使用了ActiveX控件的话,肯定要分发.ocx文件。至于是否还需要分发其他DLL,要看你的.ocx文件需要什么DLL,这你可以看看.ocx文件的帮助,或参考QA000259 "我如何知道我的程序需要哪些动态联接库支持"。
此问题由李海回答。
附加关键字:编程, 源程序, programming, source code, C/C++, MFC, C++ Builder, Borland C++, Turbo C, C, BCB, 制作安装程序, setup, installshield, wise install。
| |
|
|
| |
|
|