Maison >développement back-end >C++ >Comment puis-je déterminer par programme si un processus est 32 bits ou 64 bits ?

Comment puis-je déterminer par programme si un processus est 32 bits ou 64 bits ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-05 07:43:39294parcourir

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

Détermination du nombre de bits d'un processus par programmation

Les applications doivent souvent interagir avec d'autres processus du système. Une information cruciale pour de telles interactions est de savoir si le processus cible s'exécute en mode 32 bits ou 64 bits. Cette distinction peut affecter la compatibilité, l'utilisation de la mémoire et d'autres facteurs.

Approche déterministe

Pour déterminer le nombre de bits par programme, C# propose une méthode simple :

if (IntPtr.Size == 4)
{
    // 32-bit
}
else if (IntPtr.Size == 8)
{
    // 64-bit
}
else
{
    // The future is now!
}

Cette approche vérifie la taille de IntPtr, qui indique la taille des pointeurs sur le système en cours d'exécution : 4 octets pour 32 bits et 8 octets pour 64 bits.

Analyse spécifique au processus

Pour interroger un processus spécifique par son nom ou son identifiant pour son nombre de bits, une approche plus avancée est nécessaire. À l'aide de la classe Process, vous pouvez récupérer des informations sur le processus cible :

Process process = Process.GetProcessById(processId);
bool is32Bit = process.GetProcessBits() == ProcessBits.X32;
bool is64Bit = process.GetProcessBits() == ProcessBits.X64;

Cette méthode nécessite d'interroger le système d'exploitation et peut ne pas être disponible sur les anciens systèmes.

Détection WOW64

Pour les systèmes Windows prenant en charge l'émulation 32 bits (WOW64), il est nécessaire de vérifier si un processus 32 bits est en cours d'exécution dans l'environnement d'émulation. Le code suivant le démontre :

bool isWin64Emulator = NativeMethods.IsWow64Process(process.Handle, out bool wow64Process);

Cela nécessite d'appeler la fonction native IsWow64Process pour déterminer si le processus s'exécute en tant qu'application 32 bits sous Windows 64 bits.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn