想在某个未知系统上运行程序

时间:2011-06-11 05:57:30

标签: c++ c visual-studio-2005

我一直致力于VS 2005项目并成功生成了一个在我的系统上运行正常的exe文件。但是,当我试图在其他电脑上运行时,它没有运行。它会抛出错误消息“系统无法运行指定的程序”。有人能告诉我如何使我的代码免受这种信息的影响,即系统无关吗?

使用的平台:Windows XP,VS 2005

我所有代码文件的扩展名都是cpp,但我只知道c,这就是我在其中写的内容。

4 个答案:

答案 0 :(得分:3)

我之前看到在Windows Sp1上创建的exe之前没有在SP2上工作以及诸如此类的问题 This也许可以帮到你。

答案 1 :(得分:3)

当你在不依赖于某个DLL的不同版本的Windows上运行时,我已经看到了这一点。最简单的事情是静态链接C运行时(这是通常的罪魁祸首)并使用depends.exe查看是否还有其他人。

答案 2 :(得分:2)

您几乎肯定需要创建一个安装程序来安装您的可执行文件以及它所依赖的任何非操作系统包含的DLL。静态链接所有依赖关系并不总是可能或不可取的。在许多情况下,您可以将DLL复制到与可执行文件相同的文件夹中。

默认情况下,即使是C / C ++标准库也是由DLL提供的。虽然VC ++ 6使用的MSVCRT.DLL包含在OS以后的版本Win95中,但VS2005所需的MSVCRT不包含在XP安装中(其他版本我不知道)。运行时支持包括VC重新分发包。您可能需要安排您的安装程序包含该安装,或者您可以更有选择性地知道您的依赖项。

如果您使用它们,某些Win32 API调用依赖于操作系统版本(请查看文档),但如果您在XP上构建并运行它,它通常应该适用于任何后续版本的Windows。如果要扩展对早期版本的Windows(似乎是unlikley)的支持,则需要定义各种API版本的宏。

答案 3 :(得分:0)

您可能需要在其他计算机上安装VS 2005 redistributables,具体取决于您编译程序的方式。