¿Cómo puedo saber si mi aplicación (compilada en Visual Studio 2008 como Cualquier CPU) se está ejecutando como una aplicación de 32 bits o de 64 bits?¿Cómo puedo saber si mi aplicación se está ejecutando como una aplicación de 32 bits o de 64 bits?
¿Cómo puedo saber si mi aplicación se está ejecutando como una aplicación de 32 bits o de 64 bits?
Respuesta
if (IntPtr.Size == 8)
{
// 64 bit machine
}
else if (IntPtr.Size == 4)
{
// 32 bit machine
}
me encontré con este código de Martijn Boven que hace el truco:
public static bool Is64BitMode() {
return System.Runtime.InteropServices.Marshal.SizeOf(typeof(IntPtr)) == 8;
}
Es probable más eficiente para llamar IntPtr.Size en lugar de Marshal.SizeOf (typeof (IntPtr)) – JaredPar
Me encantaría dar 1 al comentario de JaredPar; así es como lo haría ... –
Si está utilizando .NET 4.0, es decir una línea para el proceso actual:
Environment.Is64BitProcess
Referencia: Environment.Is64BitProcess Property (MSDN)
Gracias por publicar la respuesta, es genial saberlo. No voy a cambiar la respuesta aceptada actual porque originalmente esta pregunta era sobre .NET 3.5 pero también recomendaría a las personas que voten su respuesta. –
este ejemplo de código de Microsoft All In-One Marco de código puede responder a su pregunta:
Detect the process running platform in C# (CSPlatformDetector)
El ejemplo de código CSPlatformDetector demuestra las siguientes tareas relacionados con la detección de la plataforma:
- Detecta el nombre del sistema operativo actual. (por ejemplo, "Microsoft Windows 7 Enterprise")
- Detecta la versión del sistema operativo actual. (por ejemplo, "Microsoft Windows NT 6.1.7600.0")
- Determine si el sistema operativo actual es un sistema operativo de 64 bits.
- Determine si el proceso actual es un proceso de 64 bits.
- Determine si un proceso arbitrario que se ejecuta en el sistema es de 64 bits.
Si lo que desea es determinar si el proceso en ejecución es un proceso de 64 bits , puede utilizar la propiedad Environment.Is64BitProcess que es nuevo en .NET Framework 4.
Y si desee detectar si una aplicación arbitraria que se ejecuta en el sistema es un proceso de 64 bits, es necesario determinar el valor de bits del sistema operativo, y si es de 64 bits, llamada IsWow64Process()
con el mango proceso de destino:
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;
}
Puede ser una biblioteca útil, un poco exagerada en este contexto :). –
En .Net estándar puede utilizar System.Runtime.InteropServices.RuntimeInformation.OSArchitecture
- 1. ¿Cómo puedo detectar si Python se está ejecutando como una aplicación de 64 bits?
- 2. ¿Cómo puede mi programa determinar si se está ejecutando en Windows de 32 o 64 bits?
- 3. ¿Aplicación de 32 bits o de 64 bits en el sistema operativo de 64 bits?
- 4. Usando C#, ¿cómo saber si mi máquina es de 64 bits o 32 bits?
- 5. ¿Cómo puedo saber si mi instancia de Amazon EC2 es de 32 bits o de 64 bits?
- 6. ¿Cómo puedo determinar si una aplicación .NET tiene 32 o 64 bits?
- 7. ¿Puedo ejecutar un ensamblado C# (dll) como 32 bits desde una aplicación de 64 bits?
- 8. ¿Cómo puedo saber si mi servidor ejecuta mongodb 64 bits?
- 9. conversión de aplicación .NET 32 bits a 64 bits
- 10. Cómo comprobar si IIS está en el modo de 32 bits o de 64 bits
- 11. ¿Cómo puedo saber si mi CPU tiene 32 o 64 bits?
- 12. Ejecutando la aplicación .NET de 32 bits en sistema operativo de 64 bits, ¿es realmente malo?
- 13. ¿Cómo puedo verificar si un binario compilado es de 32 bits o de 64 bits?
- 14. Ejecución de una aplicación AnyCPU como de 32 bits en un sistema operativo de 64 bits
- 15. Ejecución de una aplicación C# de 32 bits en una máquina de 64 bits
- 16. Ejecute AnyCPU como 32 bits en sistemas de 64 bits
- 17. ¿Cómo ejecutar una aplicación .NET de 32 bits en un entorno de 64 bits?
- 18. ¿Cómo saber si mi procesador tiene 32 o 64 bits en C#?
- 19. Crear 64 clave de registro de bits (no WOW64) desde una aplicación de 32 bits
- 20. Determine si el proceso actual de PowerShell es de 32 bits o de 64 bits.
- 21. ¿iPhone OS es de 64 bits o 32 bits?
- 22. ¿Cómo puedo saber si mi aplicación se está ejecutando en una sesión de RDP
- 23. uint es de 32 bits, sin importar si el sistema es de 32 o 64 bits?
- 24. Aplicaciones Java de 64 bits: ¿Se requiere un SO de 64 bits, un JRE de 64 bits y una Aplicación de 64 bits?
- 25. 64 bits por división de 32 bits
- 26. Mezcla de 32 bits y 64 bits P/Invoca
- 27. Cargar biblioteca compartida de 32 bits desde la aplicación de 64 bits?
- 28. Lectura de 64 bits Registro desde una aplicación de 32 bits
- 29. ¿Es posible acceder a un dll de 64 bits desde una aplicación de 32 bits?
- 30. ¿Cómo comprobar si una biblioteca tiene 32 bits/64 bits incorporados en Mac OS X?
¿El compilador no desempeña ningún papel en el medio? –