【发布时间】:2012-07-19 07:38:45
【问题描述】:
我在用 VC++ 制作游戏时遇到了一件奇怪的事情。我在 Windows 7 中使用 Cocos2d-x 平台和 VC++ 2010,它在我的机器上运行良好。但是,我有另一台计算机是 Windows XP。我目前正在使用 /MT,因此运行时库没有问题,但该程序无法在 Windows XP 中运行,甚至不会产生错误。我曾在另一台计算机上尝试使用 2010 C++ redist,无论有没有都无法使用。控制台中没有任何内容,也没有错误日志。 DependencyWalker 中没有什么奇怪的地方,只是缺少 Internet Explorer 框架的东西。什么可以导致 Windows XP 上的程序立即执行并关闭而不留下错误?
有人有什么想法吗?我正在使用游戏框架的动态链接库,这可能是个问题吗?此外,即使我静态链接,我的可执行文件也只有大约 140 KB。有什么事吗?
感谢您的帮助。
编辑:我之前遇到的 CRT 也有一个有趣的问题。当我在 Windows 7 上以权限级别“asInvoker”运行程序时,出现“CRT 未初始化”错误。一旦我将它设置为“highestAllowed”,它就开始工作了,但我想知道它是否与 CRT 有关?
【问题讨论】:
-
当您说控制台中没有任何内容并且没有错误日志时,您的意思是 Windows 事件日志没有列出错误或应用程序没有记录任何内容?
-
Windows 错误日志没有列出任何错误,我认为应用程序也没有记录任何内容。就像程序从未运行过一样
-
确保所有链接的库在您希望运行它的机器上可用,您可能有外部依赖项,当 Windows 找不到它们时,它会无缘无故停止执行。您还可以选择在目标计算机上调试程序。 140kb 听起来不错,但请确保包含您可能需要的任何 .dll
-
感谢耶稣。所有的 DLL 都在那里,有趣的是,如果我删除它们,就会弹出错误。我会尝试在那台机器上调试
-
尝试安装适用于 Windows 的调试工具,然后在该机器上从 Windbg 启动应用程序——这应该会为您提供更多信息。
标签: c++ visual-studio-2010 visual-c++ windows-7 cocos2d-x