【发布时间】: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 已添加到程序目录中,以便第二台计算机可以识别它们。我尝试了其他方法来导出代码here、here 和here。他们都做了同样的事情。我相信这个问题与 dll 有关,但我不是专家,这就是我寻求帮助的原因。
【问题讨论】:
-
你的调试还不够。 “它只是崩溃”。 “我得到一个错误。”就好像你忽略了细节。进行一些诊断。找出它是如何失败的。也许你的代码有缺陷。制作一个简单的 MCVE。
-
@DavidHeffernan 当程序崩溃时,我在事件监视器中找到了错误。它似乎与 KERNALBASE.dll 有关。
-
我是 C++ 新手,但我假设您指的是 this。你想看什么代码?发布可执行文件在我编写代码的机器上运行良好。
-
隔离问题以便重现。
标签: c++ visual-studio-2010 dll inno-setup