Heim >Backend-Entwicklung >C++ >Wie kann ich feststellen, ob ein C#-Prozess 32-Bit oder 64-Bit ist?

Wie kann ich feststellen, ob ein C#-Prozess 32-Bit oder 64-Bit ist?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-01-05 14:52:40443Durchsuche

How Can I Determine if a C# Process is 32-bit or 64-bit?

Bestimmen der Bitness eines Prozesses

In C# wird bestimmt, ob ein bestimmter Prozess im 32-Bit- oder 64-Bit-Modus ausgeführt wird wird durch verschiedene Methoden erreicht.

IntPtr Size Prüfen

Der einfachste Ansatz besteht darin, die Größe des IntPtr-Datentyps zu überprüfen:

if (IntPtr.Size == 4)
{
    // 32-bit process
}
else if (IntPtr.Size == 8)
{
    // 64-bit process
}

WOW64-Prüfung

Um festzustellen, ob andere Beachten Sie Folgendes, wenn Prozesse im 64-Bit-Emulator (WOW64) ausgeführt werden Code:

private static bool IsWin64Emulator(this Process process)
{
    if ((Environment.OSVersion.Version.Major > 5) || ((Environment.OSVersion.Version.Major == 5) && (Environment.OSVersion.Version.Minor >= 1)))
    {
        bool retVal;
        return NativeMethods.IsWow64Process(process.Handle, out retVal) && retVal;
    }

    return false; // not on 64-bit Windows Emulator
}

wobei NativeMethods.IsWow64Process ein DLL-Import ist:

[DllImport("kernel32.dll", SetLastError = true, CallingConvention = CallingConvention.Winapi)]
[return: MarshalAs(UnmanagedType.Bool)]
internal static extern bool IsWow64Process([In] IntPtr process, [Out] out bool wow64Process);

Das obige ist der detaillierte Inhalt vonWie kann ich feststellen, ob ein C#-Prozess 32-Bit oder 64-Bit ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn