废话,是vc发布的,原来windows里不包含这个库,后来就有了,比如vb的vbm50什么的。为了确保万无一失最好一起发布

解决方案 »

  1.   

    MFC42D.DLL是VC的,如果你的程序要在没有vc的机器运行,建议对库使用用静态连接方式。
      

  2.   

    注意MFC42D.dll的D字母,它表示是Debug使用。所以当然是随VC发布的.
      

  3.   

    既然MFC42D.dll是Debug使用的,为什么我安装了release版执行是还需要它呢?
      

  4.   

    MFC42D.dll 是随 VC 发布的,只有执行 VC 编译的 MFC 调试程序才需要此文件.
    MFC42.dll  一般是 win98 以上的系统自带的,是执行 MFC 共享 DLL 的发布程序所必须的 DLL 文件.Xsean():安装了release版执行是还需要它,我不知道你是什么意思????
    是你运行 VC 编译的  release版 程序也需要 MFC42D.dll  这个文件吗?? 这应该是不可能的啊,你仔细的检查一下!!
      

  5.   

    to abcdhy(程旭):
    我将一个release版 程序打包安装到另一台机子(w98),运行时提示找不到连接库MFC42D.dll,
    你说是怎么回事?
      

  6.   

    如何靜态连接?projects->settings->general->use MFC in a static library
      

  7.   

    我将一个release版 程序打包安装到另一台机子(w98),运行时提示找不到连接库MFC42D.dll,操作系统不带这个文件,如果没有静态连接,就在打包的时候打进去,而且mfc42d.dll还依赖有其他文件,也要一起打进去
      

  8.   

    我也有同样的疑惑。如果要在没有VC的机子上跑,就要静态链接,但是往往最简单的对话框程序静态链接都要188K左右,这么大。如何解决这个问题,有时候简单的程序,不用静态链接也可以。(不知为什么)大家如何解决?
      

  9.   

    有三个问题:
    1、to wwsatan(风度翩翩的猪肉王子):楼上的abcdhy曰:MFC42D.dll 是随 VC 发布的,只有执行 VC 编译的 MFC 调试程序才需要此文件,我安装的是发行版,为何也需要?
    2、我对动态和静态连接的理解是动态连接只将所调用函数载入内存,静态连接将整个DLL载入内存,对不对?
    3、大家用过BCGControlBar没有?如果静态连接的话,编译到InitSkinManager ();这一行时报错,说是没有定义,动态连接则没有问题,不知你们遇到过没有?
      

  10.   

    MFC42DC对应生成调试版软件,选择发行版重新编译后,软件的会变得很小,并且不需要MFC42D.DLL,而改为使用win98自带的MFC42.DLL
      

  11.   

    是随着VC发布的,如果你的工程是debug版,产生的程序,拷贝到另一台没有装vc的机器上需要
    把这个文件一起拷贝过去;如果是release版,则不需要,而且可执行程序也比较小。