【问题标题】:How to know the version of Microsoft's C runtime in use?如何知道正在使用的微软 C 运行时的版本?
【发布时间】:2012-08-20 23:34:00
【问题描述】:

我有一个依赖于 MSVCR90.dll 的程序,我将它与主要可执行文件一起提供:

ProgramFolder\Main.exe
ProgramFolder\MSVCR90.dll

我想知道我提供的新更新何时可用(例如修复安全问题)是否会优先于System32SxS 中的更新文件。

有没有办法以编程方式知道正在使用哪个版本的 C 运行时?

【问题讨论】:

  • 根据this blog post,您可以在注册表中查看产品代码。
  • VerQueryValue,搜索FileVersion 似乎是一个合理的可能性。至于什么优先:我很确定这将取决于您安装的位置/方式,也可能取决于您的清单。
  • 不能将 msvcr90.dll 部署在与 exe 相同的目录下,启动时会出现运行时错误。它必须部署在并行缓存中。从而确保安全更新。
  • 不提供 DLL,提供 MSVC 可再发行组件的安装程序,然后将其作为安装过程的一部分运行,或者如果您没有安装程序,请让用户手动运行。跨度>

标签: c++ c windows msvcrt


【解决方案1】:

您可以检查executables import header 以查找它引用了哪个版本的C 运行时。从 system32 目录中删除它不会有帮助,反而会造成崩溃。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-27
    • 2023-03-03
    • 2014-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多