msvcr80.dll 问题

在Visual Studio C++ 2005 上开发的程序拿到 没有安装Visual C++的地方可能会出现无法运行的现象。在Windows 的 Event log

里会出现 无法找到 msvcr80.dll 的错误信息。几经折腾算解决了问题,记录于此以备忘。

原因: 为了解决不同的程序导入不同版本dll包而导致一些程序无法运行等问题,Visual Studio 2005 上开发的程序利用manifest来管理该程序使用哪个版本的dll。

解决办法:

   1.运行可以从MS下载的VCRedist_x86.exe 以便把包含msvcr80.dll的文件夹安装到 Windows/WinSxS 文件夹里。(Win 2003的时候)

   2.把开发环境上的Program Files\Microsoft Visual Studio 8\VC\Redist directory里面的Microsoft.VC80.CRT文件夹拷贝到应用程序所在文件夹。

值得一提的是当Windows/WinSxS 和应用程序所在文件夹里面都包含Microsoft.VC80.CRT的时候,XP,Vista,Win 2003都是利用WinSxS文件夹里面的dll。这从软件安全角度来看很重要。因为访问WinSxS需要管理权限,而应用程序所在文件夹可能一般用户就能访问。

参考:

http://msdn.microsoft.com/en-us/library/ms235291(v=VS.80).aspx

 

你可能感兴趣的:(assembly,WinSxS,msvcr80.dll,side-by-side)