Jak sprawdzić, czy moja aplikacja działa jako aplikacja 32-bitowa lub 64-bitowa?
Jak sprawdzić, czy moja aplikacja (skompilowana w Visual Studio 2008 jako dowolny procesor) działa jako aplikacja 32-bitowa lub 64-bitowa?
5 answers
if (IntPtr.Size == 8)
{
// 64 bit machine
}
else if (IntPtr.Size == 4)
{
// 32 bit machine
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-09-20 08:20:55
Jeśli używasz . NET 4.0, jest to jedna linijka dla bieżącego procesu:
Environment.Is64BitProcess
Odniesienie: środowisko. właściwość Is64BitProcess (MSDN)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-09-20 08:21:56
Znalazłem ten kod z Martijn Boven który robi sztuczkę:
public static bool Is64BitMode() {
return System.Runtime.InteropServices.Marshal.SizeOf(typeof(IntPtr)) == 8;
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-11-05 18:09:05
Ten przykład kodu z Microsoft All-In-One Code Framework może odpowiedzieć na twoje pytanie:
Detect the process running platform in C# (CSPlatformDetector)
Przykładowy kod CSPlatformDetector pokazuje następujące zadania związane z wykrywaniem platformy:
- wykrywa nazwę bieżącego systemu operacyjnego. [13]} (np. "Microsoft Windows 7 Enterprise")
- Wykryj wersję bieżącego systemu operacyjnego. (np. "Microsoft Windows NT 6.1.7600.0")
- określić, czy bieżący system operacyjny jest 64-bitowym systemem operacyjnym.
- określa, czy bieżący proces jest 64-bitowym procesem.
- określić, czy dowolny proces uruchomiony w systemie jest 64-bitowy.
Jeśli chcesz tylko ustalić, czy aktualnie uruchomiony proces jest 64-bitowy procesu, można użyć właściwości environment.Is64BitProcess , która jest nowość w. NET Ramy 4.
I jeśli chcesz wykryć, czy dowolna aplikacja uruchomiona w systemie
jest 64-bitowym procesem, musisz określić bitowość systemu operacyjnego, a jeśli jest 64-bitowy,
wywołanie IsWow64Process()
z obsługą procesu docelowego:
static bool Is64BitProcess(IntPtr hProcess)
{
bool flag = false;
if (Environment.Is64BitOperatingSystem)
{
// On 64-bit OS, if a process is not running under Wow64 mode,
// the process must be a 64-bit process.
flag = !(NativeMethods.IsWow64Process(hProcess, out flag) && flag);
}
return flag;
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-09-29 15:51:30
W standardzie. Net można użyć System.Runtime.InteropServices.RuntimeInformation.OSArchitecture
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-10 15:00:29