【问题标题】:Compile (?) issue. Visual studio c++ 2008编译(?)问题。视觉工作室 C++ 2008
【发布时间】:2010-12-03 20:37:36
【问题描述】:

我在 XP 上网本上使用了一个应用程序来调整汽车。它工作得很好。然后我需要做一个简单的修改(输出到STDOUT而不是文件)所以我从作者那里得到了源代码。

我的上网本没有编译器的空间。我在 Windows 7 桌面上有 Visual Studio C++ 2008。我在桌面上进行了调整、编译和测试,效果很好。然后我将可执行文件复制到上网本,它不会运行

“由于应用程序配置不正确,此应用程序启动失败。重新安装应用程序可能会解决此问题”

原始(预编译)exe 工作正常。为了排除我的更改,我编译了没有 mods 的源代码,但它仍然没有工作。该可执行文件在 7 机器以及我尝试过的另一台 Win Vista 机器上运行良好。

所以它显然与 XP 机器和可执行文件的编译方式有关。我真的不知道这些东西是如何工作的,所以我不知道该尝试什么。

【问题讨论】:

    标签: c++ compilation


    【解决方案1】:

    几个想法:

    正如 Keith 上面所说,这是 DLL/清单问题。

    1. 获取 Visual Studio 2008 可再发行版(用于匹配应用程序平台)并将其安装在上网本上。

    2. 如果这没有帮助:使用Dependency Walker 找出您缺少的其他 DLL。

    【讨论】:

    • 谢谢。 Dependency Walker 提示我它与 MFC 有关。
    【解决方案2】:

    您可以检查您的项目设置并确保使用静态链接的运行时而不是 DLL。

    项目设置,C/C++ -> 代码生成。确保您使用的是不是 DLL 的运行时库。 (例如多线程调试而不是多线程调试DLL)。

    【讨论】:

    • 谢谢。那确实成功了。好吧,几乎...我无法选择您的建议,因为它抱怨 AFX 必须使用 DLL。但后来我看到了另一种使 MFC 成为静态链接库而不是 DLL 的选项,并且成功了!
    【解决方案3】:

    这是因为编译到您的应用程序中的依赖项/DLL 在您运行的平台上不存在。

    打开 Windows 事件查看器并查看应用程序日志。将有一个错误条目和缺少的 DLL 名称。在您的目标平台上复制/安装该 DLL。

    我猜你的 vc 运行时已经随着 Visual Studio 2008 发生了变化,你需要将最新版本复制到你的目标平台。如果您不知道从哪里获取依赖 DLL,请在此处发布名称,我们可以看看我们能做些什么。

    【讨论】:

    • 你说的完全正确。我不认为它是一个丢失的 DLL,因为当我过去遇到它时,它总是更明确:“XXX.DLL 丢失”或“所需的 DLL 丢失”等。
    猜你喜欢
    • 2011-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多