近日用MFC做了个软件,昨天关机的时候还好好的,今天早上打开这个东东,提示MFC42D.dll 不见了。我网上看了下,可以通过下载个这个动态链接库,就可以了。我想问的是:为什么会丢了?通常什么情况下会发生这种事情。有什么防范措施。
 一句话,我想知道发生这种情况的前因后果!!

解决方案 »

  1.   

    MFC42D.dll 这个是MFC 的debug 库文件,你可以编译软件的时候 link in MFC in static library,这样就不会出现不见了
      

  2.   

    1、重新编译,使用静态链接
    2、如果发布软件,最好改成Release版本的
      

  3.   

    你在你工程目录里看看有没有 MFC42D.dll这个文件,如果有的话,说明你运行的时候可能通过编译运行,此时的当前目录是debug的上一级目录,而你从exe打开当前目录变成debug目录我感觉是这种情况。
      

  4.   

    哥哥们,解决的方法很对,我现在还想知道丢失原因
    。而且发现这个东西丢了后,连OFFICE文件的几个文件类型XLS,DOC都不能打开,要重新安装。
      

  5.   

    你应该用Release模式编译程序,..
    不见可能你卸载了vc编译器,或删除了相关文件等
      

  6.   

    MFC42D.dll存在于C:\WINDOWS\system32中,
    出现上述提示的原因是默认情况下MFC程序是使用的动态联编方式,这种情况下在对方机器中没有安装VC++程序的情况下就会出现这个错误提示,解决的方法很简单,就是编译的时候采用静态联编的方式,也就是说将用到的dll文件编译到程序中。
    具体操作方法:Project -> Settings… 在General标签下面的Microsoft Foundation Class下面选择Use MFC in a Static Library即可。
      

  7.   

    呀。。  我突然想起来了,昨天走的时候,我们头自己写了个程序MFC写的。把安装包给我让试用下,最后OK了 我就把安装的东西给卸载了。是不是卸载的时候,顺路吧42D也给消化了。那样的话,
    这东西给别人用 岂不是很危险!!!解决的办法是不是就跟POIPPOIP和CS(这都什么名字..+.+!!)说的。。在程序编译的时候选择静态联编的方式,IF对方卸载的话 就不会把42D也给DEL了?理解的对不??
      

  8.   

    楼主这个还算好的,我还曾经.cpp文件不见了,那个叫郁闷啊.
      

  9.   

    要么用静态联编,要么你的程序目录下也带上MFC的dll,作为你程序安装包的一部分...