【问题标题】:Visual Studio 2010 C++ dll problems when trying to run application on another PC尝试在另一台 PC 上运行应用程序时出现 Visual Studio 2010 C++ dll 问题
【发布时间】:2015-08-10 04:06:47
【问题描述】:

我有一个程序,我为使用 Inno Setup 制作了一个安装程序。当我在我为其编写代码的 PC 1 上运行应用程序时,程序运行良好,没有错误。

我希望能够在未安装 Visual Studio 2010 的 PC 2 上运行该程序。所以我在PC 2(都是win 7)上安装了C++ Redistributable Package,并将我正在使用的SDK所需的所有必需的dll放入与exe文件相同的目录中。但由于某种原因,当我尝试运行应用程序时它会崩溃。

我知道问题与 dll 与 exe 位于同一位置有关,这是因为我在 PC 1 上尝试了相同的操作,它正在工作,并且果然程序在我一放dll在同一目录中。但是,在 PC 2 上,当我将 dll 移动到其他地方时,我收到一条错误消息,提示 dll 丢失。

所以我将 dll 放在一个单独的文件夹中,并为 dll 创建了一个新的 PATH 变量。程序仍然崩溃。我将 dependancy walker 运行到 exe 并收到这些错误。这些 dll 是否应该与其他 dll 位于同一目录中?

我不确定为什么我的程序无法在另一台计算机上运行。任何帮助将不胜感激。

编辑 1 我在事件监视器中找到了程序崩溃的实例。好像和KERNALBASE.dll有关

编辑 2 显然我需要添加更多细节。两台计算机都安装了相同版本的 .NET 框架。它们都运行 Windows 7 Professional。它们都是 64 位的。我制作的应用程序使用带有 dll 的 SDK。这些 dll 已添加到程序目录中,以便第二台计算机可以识别它们。我尝试了其他方法来导出代码hereherehere。他们都做了同样的事情。我相信这个问题与 dll 有关,但我不是专家,这就是我寻求帮助的原因。

【问题讨论】:

  • 你的调试还不够。 “它只是崩溃”。 “我得到一个错误。”就好像你忽略了细节。进行一些诊断。找出它是如何失败的。也许你的代码有缺陷。制作一个简单的 MCVE。
  • @DavidHeffernan 当程序崩溃时,我在事件监视器中找到了错误。它似乎与 KERNALBASE.dll 有关。
  • 我是 C++ 新手,但我假设您指的是 this。你想看什么代码?发布可执行文件在我编写代码的机器上运行良好。
  • 隔离问题以便重现。

标签: c++ visual-studio-2010 dll inno-setup


【解决方案1】:

您的应用程序是 64 位的吗?然后你需要安装 64bit MSVC++ runtime.

如果没有,那么您需要安装 32 位 MSVC++ 运行时。 32 位运行时 (x86)安装在 32 位应用程序的 64 位计算机上。

这同样适用于(第三方)DLL:需要将它们复制到适当的文件夹(System32 与 SysWOW64)以用于 32/64 位 dll。

【讨论】:

  • 我添加了一个编辑,我发现问题与 KERNALBASE.dll 相关
猜你喜欢
  • 1970-01-01
  • 2012-07-25
  • 1970-01-01
  • 2017-09-28
  • 2021-08-21
  • 2011-05-14
  • 1970-01-01
  • 2020-03-29
  • 1970-01-01
相关资源
最近更新 更多