好吧,所以我的想法是将64位和32位Windows可执行文件绑定到一个应用程序中的一些方法,所以如果它不运行64位版本,那么它将尝试32位版本。
我正在阅读有关PE的内容,并了解了一些关于MS-DOS Real Mode Stub的内容,并说明了它如何调用应用程序(通常是错误消息)。但每次我尝试研究MS-DOS Real Mode Stub时,它似乎只显示错误消息。所以我的想法是用我的32位应用程序覆盖STUB。
当32位操作系统运行64位可执行文件时,我自己很天真,但它会失败,然后运行存根文件。
有没有办法让我的可执行文件32位/ 64位独立?
答案 0 :(得分:8)
您无法创建包含x86
和x64
代码的单个可执行文件。但是,您可以创建单独的32位和64位应用程序,将x64
应用包装到x86
应用资源中。在程序启动时,您可以使用x64
检查您是否正在运行IsWow64Process
环境,然后根据需要解压缩x64
版本并改为运行
答案 1 :(得分:2)
MacOS,Linux和DOS(或混合DOS-Windows)中有fat binaries但不是32位和64位Windows
您可以编译程序的单独版本,然后通过另一个可执行文件的脚本进行选择
另一种方法是在安装时仅安装所需的版本。这被CCleaner等许多程序使用。安装程序是一个32位应用程序或像.NET这样的通用应用程序,因此它可以在任何地方运行。如果它检测到64位Windows,那么它只安装64位版本,与32位版本相同。
了解更多: