尝试在另一台PC上运行应用程序时Visual Studio 2010 C ++ DLL问题

时间:2015-08-10 04:06:48

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

我有一个程序,我使用Inno Setup制作了安装程序。当我在PC 1(我编写代码的PC)上运行应用程序时,程序运行正常且没有错误。

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

我知道这个问题与dll与exe在同一个地方有关,这是因为我在PC 1上尝试了同样的工作,但是当我把它放到时,程序就崩溃了。 dll在同一目录中。在PC 2上,当我将dll移动到其他地方时,我得到一个错误,说dll缺失了。

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

enter image description here

我不知道为什么我的程序不会在另一台计算机上运行。任何帮助将不胜感激。

编辑1 我找到了程序在事件监视器中崩溃的实例。它似乎与KERNALBASE.dll

有关

enter image description here

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

1 个答案:

答案 0 :(得分:0)

您的申请是64位吗?然后,您需要安装64位MSVC ++运行时。

如果不是,则需要安装32位MSVC ++ Runtime。在32位应用程序的64位计算机上安装了32位运行时(x86)

同样适用于(第三方)Dll:它们需要被复制到32 / 64bit dll的适当文件夹(System32 vs SysWOW64)。