我有一个 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/