gpt4 book ai didi

c++ - 并排疯狂 - 在同一台计算机上运行二进制文件

转载 作者:太空狗 更新时间:2023-10-29 21:07:39 25 4
gpt4 key购买 nike

这是我的配置:

  • 计算机 A - Windows 7,MS Visual Studio 2005 已为 Win7 兼容性打补丁 (8.0.50727.867)
  • 计算机 B - Windows XP SP2,安装了 MS Visual Studio 2005 (8.0.50727.42)

我的项目有一些外部依赖项(预构建的 DLL - 构建在 A 上或从 Internet 下载),几个从源构建的 DLL 和一个可执行文件。我主要在 A 上开发,那里一切都很好。在某些时候,我尝试在计算机 B 上构建我的项目,将预构建的 DLL 复制到输出文件夹。一切都很好,但尝试启动我的应用程序时我得到了

The application failed to initialize properly (0xc0150002)....

事件日志包含其中两个:

Dependent Assembly Microsoft.VC80.CRT could not be found and Last Error was The referenced assembly is not installed on your system.

加上稍微有趣一点的

Generate Activation Context failed for some.dll. Reference error message: The operation completed successfully.

此时我正在尝试我的 Google-Fu,但徒劳无功 - 几乎所有命中都是关于在没有安装 Visual Studio 的机器上运行二进制文件。然而,就我而言,可执行文件无法在它们构建的计算机上运行。

下一步是尝试 d​​ependency walker,这让我更加困惑——我从同一个盒子上的源构建的 DLL 找不到 MSVCR80.DLLMSVCP80.DLL,然而,对于这两个 DLL,可执行文件似乎没问题,即当我使用 dependency walker 打开可执行文件时,它显示可以找到 MSVC?80.DLL,但是当我打开我的其中一个时它说他们不能的DLL。这就是我完全不知道该怎么做的地方,所以我问你,亲爱的 stackoverflow :)

我承认我对整个并排的事情有点模糊,所以对这个主题的一般阅读也将受到赞赏。

最佳答案

您的问题有问题的答案:计算机 A 的 VC 运行时版本为 8.0.50727.867,而计算机 B 的版本只有 8.0.50727.42

您在计算机 A 上构建了您的库,它们依赖于 VC 运行时版本 867。 (这可以在库中嵌入的 list 中找到。)当您将它们复制到计算机 B 时,这些库仍然需要运行时版本 867,但您只有版本 42。

要解决 VC 运行时程序集依赖项,您必须在计算机 B 上安装版本 867 的 VC 运行时可再发行组件。但是,我建议您更新计算机 B 上的 Visual Studio,以便两台计算机上的版本相同。更好的是,在两台计算机上安装 Visual Studio 2005 SP1,然后安装 this security update to SP1 .安装后者后,您的库将依赖于版本 8.0.50727.4053

关于c++ - 并排疯狂 - 在同一台计算机上运行二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4578423/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com