我正在Windows 8上开发一个小型工具,它重新链接msvcrt.dll并使用memmove_s。我想在Windows机器上部署我的工具。我的msvcrt版本是7.0.30xx,但在XP上是7.0.2600。旧版本不包括memmove_s,因此程序在启动时会崩溃。
我尝试过安装MicrosoftVisualC++可再发行包(包括2010年和2012年),但msvcrt.dll似乎没有受到影响。
发布于 2014-04-09 16:17:27
msvcrt.dll是Windows拥有的私有系统DLL。你不应该碰它,也不应该连接它。
您应该使用Visual附带的普通msvcrXXX.dll (例如,msvcr100.dll (如果您使用Visual 2010构建)(如果您不想将CRT与您的工具分开部署,则只需使用与CRT的静态链接)。
也请考虑一下来自MSDN CRT文档的这份说明
msvcrt.dll和msvcr110.dll有什么区别? msvcrt.dll现在是一个“已知动态链接库”,这意味着它是一个由Windows拥有和构建的系统组件。它仅供系统级组件将来使用。
https://stackoverflow.com/questions/22968280
复制相似问题