【发布时间】:2011-06-30 14:33:43
【问题描述】:
可能重复:
How do I tell if my application is running as a 32 or 64 bit application?
嗨
我在 c# (Framework 3.5 SP1) 中有一个应用程序,我需要在运行时加载一个非托管程序集,但是有两个不同的版本,一个用于 x86,另一个用于 x64,所以我需要在运行时知道哪个模式是应用程序正在运行
我已经看到了这个POST,但它是针对 C++ 的,有没有更简单的方法在 C# 中做到这一点?或者我如何在 C# 中做到这一点?
谢谢
【问题讨论】:
-
见:c# - How to know a process is 32-bit or 64-bit programmatically。如果升级到 .NET 4.0,还可以使用
Environment.Is64BitProcess属性 -
@Ani:这不是骗人的,因为它要求检测某些 other 应用程序的位数。但这是stackoverflow.com/questions/266082/…的欺骗
-
@Ben Voigt:我不明白;这些问题也涵盖了这一点。该问题的最佳答案首先提到了
IntPtr.Size技术。 -
@Ani:你说得对,这个问题的答案包括这个问题的答案。
-
有趣的事实:精心设计的 x86 机器代码是否可以分支取决于它是被解码为 x86-64 还是 x86-32。见this polyglot machine-code Q&A。