Como puedo mostrar que versión utilizo en un programa intente esto:
#if_WIN64
isWow64=true;
#elif_WIN32
isWow64=false;
if(isWow64==true){
windows="Windows64bits";
}else{
windows="Windows32bits";
}
Sería correcto o debería hacer alguna otra cosa.
Yo utilizo una forma inteligente para saber si un sistema usa 32 o 64 bits, Comprueba si la carpeta de x86 existe lo mismo con la carpeta syswow64 si existen entonces el sistema usa 64 bits , si no existen entonces es 32 bits, Espero que te sirva SALUDOS!
Es correcto. Aquí tienes macros predefinidos por los compiladores para cada SO:
http://nadeausoftware.com/articles/2012/01/c_c_tip_how_use_compiler_predefined_macros_detect_operating_system (http://nadeausoftware.com/articles/2012/01/c_c_tip_how_use_compiler_predefined_macros_detect_operating_system)
Eso es incorrecto son macros de compilador, el simplemente te va a decir si se compiló como 32 o 64 , recuerden que las cosas que empiece por # serán sustituidas por el preprocesador antes de compilar
Oh sí, pensé que se hablaba en tiempo de compilación.
Acerca de eso...
Para saber si corre en WOW64, IsWow64Process (https://msdn.microsoft.com/en-us/library/ms684139(v=vs.85).aspx)
#if_WIN64
isWow64=true;
Si está compilado para Win64 bits, sí o sí va a ser de 64 bits y no va a estar corriendo en WOW64. Solo si es una app compilada para 32 bits puede que corra en WOW64 (y eso lo sacas con la función IsWow64Process)
Hola:
Tener claro que en un sistema de 64 bits el System32 es de 64 bits y el wow64 es de 32 bits, lo hicieron así para que sean compatibles con muchos programas.
http://www.samlogic.net/articles-spanish/explicacion-carpetas-archivos-de-programa-x86-syswow64.htm
Saludos.
Utiliza la funcion GetVersion o Comprueba si existen esas 2 carpetas "Program Files (x86)" o "syswow64", esas 2 opciones te sirven más info en la msdn. SALUDOS!
Cita de: Meta en 24 Marzo 2017, 18:48 PM
Hola:
Tener claro que en un sistema de 64 bits el System32 es de 64 bits y el wow64 es de 32 bits, lo hicieron así para que sean compatibles con muchos programas.
http://www.samlogic.net/articles-spanish/explicacion-carpetas-archivos-de-programa-x86-syswow64.htm
Saludos.
En windows de 32 bits jamás encontraras la carpeta "Archivos de Programas (x86)", en windows de 64 bits claro que si porque hay es viceversa. la info que aparece en ese sitio va cuando estás utilizando 64 bits. SALUDOS!
Hola:
Puedes hacer un hola mundo programando para 64 bits, si lo ejecutas en un micro de 32 bits, de entrada no funcionará.
Saludos.