Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Borito30 en 24 Marzo 2017, 17:13 pm



Título: Como mostrar la version de windows 32 o 64 bits usando c++
Publicado por: Borito30 en 24 Marzo 2017, 17:13 pm
Como puedo mostrar que versión utilizo en un programa intente esto:
Código:
#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.


Título: Re: Como mostrar la version de windows 32 o 64 bits usando c++
Publicado por: Natalia94x en 24 Marzo 2017, 17:39 pm
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!


Título: Re: Como mostrar la version de windows 32 o 64 bits usando c++
Publicado por: ivancea96 en 24 Marzo 2017, 18:17 pm
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)


Título: Re: Como mostrar la version de windows 32 o 64 bits usando c++
Publicado por: engel lex en 24 Marzo 2017, 18:21 pm
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



Título: Re: Como mostrar la version de windows 32 o 64 bits usando c++
Publicado por: ivancea96 en 24 Marzo 2017, 18:34 pm
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)

Código
  1. #if_WIN64
  2.    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)


Título: Re: Como mostrar la version de windows 32 o 64 bits usando c++
Publicado por: 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.


Título: Re: Como mostrar la version de windows 32 o 64 bits usando c++
Publicado por: Natalia94x en 24 Marzo 2017, 18:50 pm
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!


Título: Re: Como mostrar la version de windows 32 o 64 bits usando c++
Publicado por: Natalia94x en 24 Marzo 2017, 18:56 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!


Título: Re: Como mostrar la version de windows 32 o 64 bits usando c++
Publicado por: Meta en 24 Marzo 2017, 18:59 pm
Hola:

Puedes hacer un hola mundo programando para 64 bits, si lo ejecutas en un micro de 32 bits, de entrada no funcionará.

Saludos.