在Windows XP上更新MSVCRT.dll

时间:2014-04-09 16:14:42

标签: c++ dll deployment windows-xp msvcrt

我正在Windows 8上开发一个小工具,它再次链接msvcrt.dll并使用memmove_s。我想在Windows XP机器上部署我的工具。我的msvcrt版本是7.0.30xx但是XP版本是7.0.2600。旧版本不包含memmove_s,因此程序在启动时崩溃。

我尝试安装Microsoft Visual C ++ Redistributable Package(2010年和2012年),但似乎msvcrt.dll未受影响。

1 个答案:

答案 0 :(得分:2)

msvcrt.dll是Windows拥有的私有系统DLL。你不应该触摸它,也不应该链接它。

您应该使用Visual Studio附带的普通msvcrXXX.dll(例如,如果使用Visual Studio 2010构建的msvcr100.dll)(或者只是使用CRT的静态链接,如果您不想部署CRT DLL与您的工具分开。)

另请考虑MSDN CRT documentation中的这条说明:

  

msvcrt.dll和msvcr110.dll有什么区别?

     

msvcrt.dll现在是一个已知的DLL,"这意味着它是Windows拥有和构建的系统组件。它仅供系统级组件将来使用。