选择静态编译
Project->settings->General->Microsoft Fundation Classes 选择 Use MFC in a Static Libaray

解决方案 »

  1.   

    lumg绝对是新手。一个程序的运行依赖于一些dll是很正常的,而且几乎每个windows程序都是这样,windows本生的一些dll文件就是为应用程序服务的。不过你的情况是这样的,
    VC的程序可以编译为两个版本:release和debug。每个版本各有一套dll和lib(参见DragonCheng的答复).release是发行版,不带调试信息。debug是调试版,带调试信息。开发的过程中使用debug版调试,完成后编译为release版去掉调试信息。对于dll(动态连接)或lib(静态连接)你可以任选,一般原则是:程序很小就使用静态连接,程序较大就使用动态连接。
      

  2.   

    ad,你懂不懂,不懂就不要瞎说!区别:
    debug版:有调试信息.
    release版:无调试信息.动态连接:不可在未安装VC的机子上运行,编译时快,因为没有把库编译进去.
    静态连接:可在未安装VC的机子上运行,编译时慢,把库编译进去了.一般的原则是:编程序时用debug版动态连接,都编好后发布时再用release版静态连接.ad说的不对,不要听它的.
      

  3.   

    GreenStuff才真正不懂,俨然未入门。
    谁说动态连接的程序不能在未安装VC的机子上运行?只要将程序用到的DLL拷入目标机的windows\system目录就行了。如果你用installshield做安装程序,它可以帮你做到这一点,免得安装者手工操作拷贝过程。
    关于快慢问题,GreenStuff说得不对,静态连接因为连入EXE文件的内容多,在连接时固然会慢一点,但并不显著,你几乎没感觉。至于编译过程,根本就没区别。注意,编译和连接是两个过程。快慢的问题体现在程序运行时,因为debug版包含大量调试信息,所以运行速度慢,这在程序处理重任务时与release版会有天壤之别。
    GreenStuff的原则是不正确的,不过我的release版都用静态连接,因为我不想将DLL加入我的安装程序中,虽然动态连接可使exe较小,但加上DLL会占用更多的磁盘空间,如果做成安装软盘,当然希望能少用一张盘。
      

  4.   

    to ad:
    你说得太好了,太详细了,我想请问你在VB6中有没有办法去掉MSVBVM60.DLL?