如何将 64 位和 32 位可执行文件绑定为一个?
How to bind 64-bit and 32-bit executable into one?
好吧,我的想法是通过某种方式将 64 位和 32 位 Windows 可执行文件绑定到一个应用程序中,所以如果它没有 运行 64 位版本,它就会试试 32 位的。
我正在阅读有关 PE 的资料,并了解了一些有关 MS-DOS 实模式存根的知识,它说明了它如何调用应用程序(通常是一条错误消息)。但每次我尝试研究 MS-DOS Real Mode Stub 时,它似乎只显示错误消息。所以我的想法是用我的 32 位应用程序覆盖 STUB。
我天真地认为 32 位操作系统 运行 64 位可执行文件会失败,然后 运行 存根文件。
有没有办法让我的可执行文件 32-bit/64-bit 独立?
在 MacOS、Linux 和 DOS(或混合 DOS-Windows)中有 fat binaries,但没有 32 位和 64 位 Windows
您可以编译程序的不同版本,然后 select 通过另一个可执行文件的脚本
另一种方法是在安装时只安装所需的版本。这被许多程序使用,如 CCleaner。安装程序是一个 32 位应用程序或像 .NET 这样的通用应用程序,因此它可以 运行 在任何地方。如果它检测到 64 位 Windows 则它只安装 64 位版本,与 32 位版本相同。
阅读更多:
- Universal binary
- Windows 8 fat binary (exe for x86 & ARM)
- Windows NT has always been a multi-platform OS, but the binaries are not
您无法创建包含 x86
和 x64
代码的单个可执行文件。但是,您可以创建单独的 32 位和 64 位应用程序,将 x64
应用程序打包到 x86
应用程序资源中。在程序启动时,您可以检查您是否正在使用 IsWow64Process
运行ning x64
环境,然后如果需要,解压您的 x64
版本并 运行 它
好吧,我的想法是通过某种方式将 64 位和 32 位 Windows 可执行文件绑定到一个应用程序中,所以如果它没有 运行 64 位版本,它就会试试 32 位的。
我正在阅读有关 PE 的资料,并了解了一些有关 MS-DOS 实模式存根的知识,它说明了它如何调用应用程序(通常是一条错误消息)。但每次我尝试研究 MS-DOS Real Mode Stub 时,它似乎只显示错误消息。所以我的想法是用我的 32 位应用程序覆盖 STUB。
我天真地认为 32 位操作系统 运行 64 位可执行文件会失败,然后 运行 存根文件。
有没有办法让我的可执行文件 32-bit/64-bit 独立?
在 MacOS、Linux 和 DOS(或混合 DOS-Windows)中有 fat binaries,但没有 32 位和 64 位 Windows
您可以编译程序的不同版本,然后 select 通过另一个可执行文件的脚本
另一种方法是在安装时只安装所需的版本。这被许多程序使用,如 CCleaner。安装程序是一个 32 位应用程序或像 .NET 这样的通用应用程序,因此它可以 运行 在任何地方。如果它检测到 64 位 Windows 则它只安装 64 位版本,与 32 位版本相同。
阅读更多:
- Universal binary
- Windows 8 fat binary (exe for x86 & ARM)
- Windows NT has always been a multi-platform OS, but the binaries are not
您无法创建包含 x86
和 x64
代码的单个可执行文件。但是,您可以创建单独的 32 位和 64 位应用程序,将 x64
应用程序打包到 x86
应用程序资源中。在程序启动时,您可以检查您是否正在使用 IsWow64Process
运行ning x64
环境,然后如果需要,解压您的 x64
版本并 运行 它