Page 1 of 1

Como saber si procesador es de 32 o 64 bits

Posted: Wed Apr 04, 2012 1:41 pm
by fespinoza
Eso; quisiera conocer si existe alguna forma de conocer vía programación (función o alguna otra forma), cual es el tipo de procesador en el cual se esta ejecutando la aplicación: 16, 32 o 64 bits.

Saludos

Fernando Espinoza

Re: Como saber si procesador es de 32 o 64 bits

Posted: Wed Apr 04, 2012 2:06 pm
by Antonio Linares
Fernando,

Prueba este ejemplo:

Code: Select all

#include "FiveWin.ch"

function Main()

   MsgInfo( SizeofLongLong() )

return nil

#pragma BEGINDUMP

#include <hbapi.h>

HB_FUNC( SIZEOFLONGLONG )
{
   hb_retnl( sizeof( HB_LONGLONG ) * 8 );
}

#pragma ENDDUMP

Re: Como saber si procesador es de 32 o 64 bits

Posted: Wed Apr 04, 2012 2:17 pm
by Antonio Linares
Este es el sistema correcto :-)

MsgInfo( GetEnv( "PROCESSOR_ARCHITECTURE" ) )

En 32 bits devuelve "x86"

En 64 bits devuelve "AMD64"

Re: Como saber si procesador es de 32 o 64 bits

Posted: Wed Oct 09, 2013 4:03 pm
by omarelunico
Antonio el valor que devuelve es "x86" ya sea 32 bits o 64 bits

tengo FWH 2.8
el pc es core i5 DH61WW a 64 bits, como diferencio si es 32 o 64?


Image

Re: Como saber si procesador es de 32 o 64 bits

Posted: Wed Oct 09, 2013 4:13 pm
by omarelunico
Image

Re: Como saber si procesador es de 32 o 64 bits

Posted: Wed Oct 09, 2013 4:15 pm
by omarelunico
Mensaje Borrado

Re: Como saber si procesador es de 32 o 64 bits

Posted: Wed Oct 09, 2013 4:38 pm
by hmpaquito
omarelunico wrote:El programa nativo tiene que ser a 64 bits para que indique AMD64.
Si el programa está a 32 bits corriendo en una maquina a 64 bits,
Cómo encontrar una función que me haga la diferencia?
Pues según el cuadro que tu has pegado, se puede saber si se cumple ALGUNA estas condiciones:
PROCESSOR_ARCHITECTURE es AMD64
PROCESSOR_ARCHITEW6432 está definida y su valor es AMD64

Saludos

Re: Como saber si procesador es de 32 o 64 bits

Posted: Wed Oct 09, 2013 4:40 pm
by omarelunico
Encontré la solución

la función es GetEnv("PROCESSOR_ARCHITEW6432")

si el programa es nativo a 32 bits ejecutandose en un servidor a 64 bits
Arroja AMD64 en la máquina del servidor que es 64 bits
Arroja NUL en cualquier otra maquina a 32 bits.

Con eso ya puedo diferenciar.

Re: Como saber si procesador es de 32 o 64 bits

Posted: Wed Oct 09, 2013 5:06 pm
by hmpaquito
omarelunico wrote:Encontré la solución

la función es GetEnv("PROCESSOR_ARCHITEW6432")

si el programa es nativo a 32 bits ejecutandose en un servidor a 64 bits
Arroja AMD64 en la máquina del servidor que es 64 bits
Arroja NUL en cualquier otra maquina a 32 bits.

Con eso ya puedo diferenciar.

¡ qué casualidad ! Tu solución es muy, muy parecida a la que yo te he dicho. Genial. :shock: