c++ - 从 32 位程序启动 64 位进程

标签 c++ 64-bit system 32-bit

我有一个 32 位程序,我想在 64 位计算机上运行。我正在运行 vssadmin 命令以获取还原点信息并将其保存到文本文件中。 现在,它在我的 32 位计算机上运行良好,而我在我 friend 的 64 位计算机上测试它,但它无法运行。

如果我在 64 位系统上运行的 32 位应用程序中使用 system(),它会使用 32 位命令提示符吗?这是我唯一能想到的会阻止它工作的东西,因为我已经从命令提示符手动运行命令并且它工作正常。

如果是这样呢?无论如何强制它使用正确的命令提示符?

最佳答案

在 Linux 和 Windows [我也相信 BSD/MacOS] 中,32 位应用程序可以使用相关的“创建新进程”系统调用来启动 64 位进程 [which system() 在它启动的 shell 中向下做了几层。

唯一的限制是 32 位可执行文件不能使用 64 位共享库(.so 或 .dll),反之亦然。但是一个新进程首先加载一个新的可执行文件,此时进程可以是 32 位或 64 位的,具体取决于可执行文件本身。

关于c++ - 从 32 位程序启动 64 位进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15552514/

相关文章:

c++ - IHTMLElement 到 HWnd

windows - 我可以在 Windows 机器中使用的最大 RAM 量是多少?

php - 如何从 PHP 运行 .bat 文件?

c++ - 如何在C++中捕获多个信号?

javascript - WebAssembly emsdk 安装失败

c++ - 如何在 Linux 应用程序上使用 C++ 中的终端输入中断循环/进程

c++ - 方程式相等性测试(在C++或Unix工具中)(代数函数同构)

c# - 如何在运行时知道我在 C# 中处于 x86 还是 x64 模式

c# - P/Invoke - Int 4 字节,尝试更改为 UInt 但它会导致问题

java - 临时文件夹被创建为临时文件