C# 确定可执行文件在C中是64位还是32位#
我正在寻找一种解决方案来确定给定的可执行文件是64位还是32位 正在测试的可执行文件可能是基于.NET的,也可能不是 我见过多种不同的技术,不确定其中一种与另一种有什么不同 我所看到的技巧如下:C# 确定可执行文件在C中是64位还是32位#,c#,.net,header,64-bit,exe,C#,.net,Header,64 Bit,Exe,我正在寻找一种解决方案来确定给定的可执行文件是64位还是32位 正在测试的可执行文件可能是基于.NET的,也可能不是 我见过多种不同的技术,不确定其中一种与另一种有什么不同 我所看到的技巧如下: 使用dumpbin.exe(随Visual Studio或Windows SDK提供) Win32函数GetBinaryType 检查文件的标题(如本Q中所示) 最可靠的方法是什么?我知道有两种方法: 1.如果您需要在运行时检查它:使用IsWow64Process。 如果是x86进程,则返回tru
- 使用dumpbin.exe(随Visual Studio或Windows SDK提供)
- Win32函数GetBinaryType
- 检查文件的标题(如本Q中所示)
最可靠的方法是什么?我知道有两种方法:
1.如果您需要在运行时检查它:使用IsWow64Process。
如果是x86进程,则返回true,否则返回false。
2.如果需要在非运行时检查,只需检查EXE PE格式。
如果NT头->可选头->魔术==图像\u NT\u可选\u HDR64\u魔术
它是一个x64exe/dll 你为什么要寻求一种健壮的方法——要么有效,要么无效,对吧?阅读这篇文章,希望这对你有所帮助。对于.NET可执行文件来说,没有可靠的方法可以做到这一点。任何一个CPU意味着它所说的,它可以是任何一个。比特率是在运行时确定的,但可以知道编译后的程序是否被强制运行32或64体系结构。