利用Visual Studio 2005开发的程序缺少DLL无法运行的解决方法之一

时间:2022-02-02 14:40:02

Visual Studio 2005环境下,利用MFC编制的程序在没有装有Visual Studio 2005的平台上运行,会出现“由于应用程序的配置不正确,应用程序未能启动,重新安装应用程序可能会纠正这个问题”的错误。

原因在于,MFC选项中设置的是“在共享DLL中使用MFC”,致使程序在没有装VS 2005的平台上会因为缺乏必要的DLL而无法启动。

我的解决方法是拷贝必需的DLLMFC程序目录下。


第一步,在编译MFC程序时,产生的中间文件中会有“xxx.exe.intermediate.manifest”,打开该文件,会发现里面内如大致如下:

<?xml version='1.0' encoding='UTF-8'standalone='yes'?>

<assemblyxmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>

 <dependency>

   <dependentAssembly>

     <assemblyIdentity type='win32' name='Microsoft.VC80.CRT'version='8.0.50608.0' processorArchitecture='x86'publicKeyToken='1fc8b3b9a1e18e3b' />

   </dependentAssembly>

 </dependency>

 <dependency>

   <dependentAssembly>

     <assemblyIdentity type='win32' name='Microsoft.VC80.MFC'version='8.0.50608.0' processorArchitecture='x86'publicKeyToken='1fc8b3b9a1e18e3b' />

   </dependentAssembly>

 </dependency>

</assembly>


文件中有Microsoft.VC80.CRT,假设VS 2005安装在D盘中的VS2005目录,那么Microsoft.VC80.CRT则位于D:/VS2005/VC/redist/x86中,拷贝Microsoft.VC80.CRT中的所有文件到编制的MFC程序目录下,对于Microsoft.VC80.MFC也是同理,此外,务必也要把xxx.exe.intermediate.manifest拷贝到编制的MFC程序目录下。

如果编制的程序中同时有exe文件和dll文件,那么exe文件和dll文件都要按上述步骤进行,dllxxx.dll.intermediate.manifest文件也要拷贝。