问题】解决找不到MFC42D.DLL及fatal error LNK1103: debugging information corrupt; recompile module

2009年09月15日 星期二 10:24

       在平时基本上都是用DEBUG调试程序,但是提交作品的时候需要RELEASE版本,可是release老是在后续运行时出问题,于是在别的电脑上运行DEBUG版本,出现了找不到MFC42D.DLL,然后接着找不到MSVCRTD.DLL->MFCD42D.DLL->MFCO42D.DLL。

【错误】:“没有找到MFC42D.DLL,因此这个应用程序未能启动.重新安装应用程序可能会修复此问题。”
【原因】:电脑未安装vc6.0,系统目录下面没有上面这四个DLL文件
【解决】:1.最原始的方法:将上面的四个DLL文件拷贝到当前目录或者系统目录(C:/WINDOWS/system32),可以到安装了vc6的系统目录下面拷贝也可以去下载,下载地址(点击)
                 2.使用release版本:菜单build->Set Active Configuration,然后选择Release
                 3.使用静态编译:菜单project->settings,在General选项卡里第一项选择Use MFC in a static Library,同时build->rebuild all

采用上面的静态编译时又出现了错误,

【错误】:fatal error LNK1103: debugging information corrupt; recompile module
【原因】:默认的SDK版本过高,以下是网上的说法:2003年2月的SDK是支持VC6的最后一版,在此之后的就都是使用VC7/VC8来开发的了。随着VC7/VC8中新的debug信息格式和一些安全检查机制的导入,在VC6上使用这些库的Debug版本的时候就会产生如题的链接错误。具体而言,你可能在VC6上使用了XP,Windows 2003或者Windows 2003 R2版本的SDK。

【解决】:1.用Release版编译,不过这样就没法调试了。
                  2.VC6.0编译器,到Tools -> Options -> Directories,将SDK的顺序放到最下边或者直接删掉较新SDK的Directories:包括Include files和Library files。
                 3.如果你必须使用SDK中的新特性,那么找一个2004年之前的SDK吧。
               这里是最后一版支持VC6的SDK的下载地址:http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm
               4.这个对VS无效,可以尝试 在Solutions Explorer中选中工程,点右键选Properties -> Linker -> Debugging,把Generate Debug Info选项改为No.

你可能感兴趣的:(问题】解决找不到MFC42D.DLL及fatal error LNK1103: debugging information corrupt; recompile module)