目标电脑未安装VC++6.0或者VS,运行APP丢失DLL问题解决办法

一、背景

  VS或者VC++6.0编译出来的程序需要在未安装VS/VC++6.0的电脑上跑,很大情况会出现MSVCRXXX.dll 或者其他DLL丢失的情形,本篇就DLL相关问题做个记录。

二、正文

  1、如何使VS或者VC++6.0编译出来的程序在未安装VS/VC++6.0的电脑上跑

  在X:\Program Files [(x86)]\Microsoft Visual Studio 版本\VC\redist\区域设置\ 中的 Visual Studio 安装目录下找到包含在 Visual Studio 中的 Visual C++ 可再发行包(VCRedist_x86.exe、VCRedist_x64.exe 或VCRedist_arm.exe)。“X”为VS安装的文件夹,然后将对应的文件安装到目标电脑,即可实现在未安装VS/VC++6.0上的PC机上跑自己编译的程序。

  2、提示MSVCRXXXD.dll丢失,注意字母“D”。

  若是提示MSVCRXXXD.dll丢失,则你会发现按照方法“1”,根本无法解决问题,它永远会提示该DLL丢失,直至手动将该丢失的DLL扔进“System32”文件夹内。这是不是很不科学?你总不可能让客户自己去网上download一个对应的DLL放到对应的文件夹吧。

  最后通过Google查找才找着答案,原来带“D”的原因是因为在编译DLL的时候使用了Debug模式,而实际发行版本应该用release模式,因为可再发行包(VCRedist_x86.exe、VCRedist_x64.exe 或VCRedist_arm.exe)内的DLL全是不带“D”的DLL,若是使用Debug模式,那么怎么安装可再发行包也都不可能解决DLL丢失的问题。

  解决办法:

  编译DLL的时候,使用release模式。

三、参考文档:

  The program can't start because MSVCR110.dll is missing ...

    https://answers.microsoft.com/en-us/windows/forum/windows_8-winapps/the-program-cant-start-because-msvcr110dll-is/f052d325-3af9-4ae5-990b-b080799724db

  重新分发Visual C++文件

    https://msdn.microsoft.com/zh-cn/library/ms235299.aspx

  Release application looking for MSVCR110D.dll

    http://*.com/questions/13851522/release-application-looking-for-msvcr110d-dll

  至此,记录完毕

记录时间:2016-12-12

记录地点:深圳WZ

上一篇:ffmpeg2.2在ubuntu下使用NDK编译——并在android工程下测试使用


下一篇:怎样开发单页面app