我制作了一个应用程序,我必须编译它的 32 位和 64 位版本。我看到一些应用程序,例如 ProcessExplorer,其行为如下。在 32 位操作系统上,它运行 32 位应用程序,但在 64 位操作系统上,它会提取同一 exe 的 64 位版本,并将执行该应用程序。那么我如何从我的应用程序中制作这样的应用程序呢?我应该在 Visual Studio 中进行哪些设置?
最佳答案
流程资源管理器的工作方式如下:
- 您下载了一个 32 位可执行文件。
- 当您在 32 位操作系统上运行该可执行文件时,就这样了。
- 当您在 64 位操作系统上运行该可执行文件时,32 位进程会在启动时检测到该可执行文件,并将 64 位可执行文件提取到磁盘,并将其作为资源存储在 32 位进程中。然后它运行该 64 位可执行文件。
Visual Studio 中没有任何设置可以为您自动执行该过程。你必须自己写那部分。您可以有一个首先构建 64 位版本的构建过程。然后您可以将该可执行文件编译成链接到 32 位进程的资源。这就是您运送的内容。
我自己并不相信这值得所有的努力。就我个人而言,我倾向于发布两个不同的可执行文件,但我想只有您知道自己的要求。
关于c - 如何创建包含 32 位和 64 位二进制文件的应用程序,并在操作系统上运行相应的应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13662969/