c++ - 将 32 位和 64 位应用程序(使用相同的代码)编译成一个 exe

标签 c++ winapi hook

我有 2 个使用全局 Hook 的应用程序,它是为 Windows 10(64 位)构建的。一个是 32 位的,另一个是 64 位的。我能够将它们编译成 2 个独立工作的独立 exe 文件。但由于它们具有相同的代码,我希望将它们编译成一个 exe 文件,以满足它的 32 位和 64 位职责。我可以使用 Visual Studio 或其他方式做到这一点吗?

最佳答案

Windows PE EXE 格式不支持单个二进制文件中的多个 CPU 架构。

SysInternals 工具将 64 位 .exe 作为资源嵌入到 32 位可执行文件中,如果 IsWow64Process 则提取并运行它。是真的。如果您选择这种技术,您还必须考虑到最近的 ARM64 机器是 Wow64,但只能模拟 32 位 x86 应用程序。

注意:Windows Server Core 可以在没有 Wow64 支持的情况下安装,如果您支持这些系统,您还必须分发 64 位二进制文​​件。

关于c++ - 将 32 位和 64 位应用程序(使用相同的代码)编译成一个 exe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49576037/

相关文章:

c++ - iOS didFailToConnectPeripheral : with error Code=0 "Unknown error."

c++ - C/C++ 原型(prototype)的用途

c++ - 对 imp_getaddrinfo 的 undefined reference

c++ - 开始一个进程而不是 child

c++ - 复制 token 时访问冲突

c++ - 为什么 MobileSubstrate 在 hook C++ 函数时使用这么长的函数名?

c++ - 在 C++ 中对二维数组进行排序

c++ - 即使使用 -ffast-math 优化,exp(-1/0.) == 0 是否确定成立?

javascript - Vue 兄弟组件 Hook 生命周期关系

git - 从 Makefile 跟踪分支更改