我有一个可执行文件,在 32 位 Windows 上运行时可以正常工作,但在 64 位 Windows 上运行时会中断。
有什么方法可以强制它在 64 位机器上以 32 位模式运行吗?
我无权访问源代码。
Ric*_*ard 17
你想要什么样的技术答案?您可以使用一些 SDK 工具强制 exe 始终运行 32 位,但这确实需要一些工作。
简单的答案是从 32 位进程启动(例如%SystemRoot%\SYSWOW64\cmd.exe用于启动)。
比较复杂的就是检查一下是什么exe文件,然后自己修改。这里的背景是要了解,开发人员在编译时将直接使用 Windows API 的语言编译的代码创建为 32 位或 64 位。如果不返回源代码,则无法更改此设置。
然而,越来越多的应用程序是通过虚拟化层编写的,这使得编写应用程序变得更加容易。有两种常见的:.NET 和 Java。除了知道强制安装正确的 Java 运行时可以解决问题之外,我对 Java 不太确定。
对于 .NET,您可以使用 SDK 工具来:
corflags myExe.exe。使用 .NET SDK 中的实用程序读取 .NET 程序集的标头,对于 exe 将返回如下内容:版本:v4.0.30319 CLR 标头:2.5 聚乙烯:PE32 CorFlags:0x20003 国际:1 32BITREQ : 0 32BITPREF : 1 签名:0
在32BITREQ告诉我,这是AnyCPU因为32位不是必需的。
corflags它的/32BITREQ+选项将 exe 修改为仅 32 位。| 归档时间: |
|
| 查看次数: |
151281 次 |
| 最近记录: |