2
					
						
						« en: Jueves 22 de Mayo de 2003, 02:29 »
					 
					
					Estoy intentando encontrar la dirección del puerto paralelo:
#include <stdio.h>
int main()
{
    unsigned int __far *puntero_a_direccion;
    int i;
    puntero_a_direccion=(unsigned int __far *)0x00000408;
    for (i=0; i<3; i++)
    {
        if (*puntero_a_direccion == 0)
        printf("No se encontro puerto asignado a LPT%d n", i+1);
        else
        printf("La direccion asignada a LPT%d es 0x%Xhn",
          i+1, *puntero_a_direccion);
        puntero_a_direccion++;
    }
    return 0;
}
Pero me arroja un error de compilación porque el keyword "far" está obsoleto. SIn embargo con:
#include <windows.h>
#include <stdio.h>
int main()
{
    LPDWORD puntero_a_direccion;
    int i;
    puntero_a_direccion=(LPDWORD)0x00000408;
    for (i=0; i<3; i++)
    {
        if (*puntero_a_direccion == 0)
        printf("No se encontro puerto asignado a LPT%d n", i+1);
        else
        printf("La direccion asignada a LPT%d es 0x%Xhn",
          i+1, *puntero_a_direccion);
        puntero_a_direccion++;
    }
    return 0;
}
Me arroja un error de violacion de acceso. Compilándolo en con el Turbo C++ 3 no tengo ningún problema.
Alguien podría decirme cuál es el problema en mi código o ¿cómo obtener la dirección del puerto paralelo en win32?
Muchas gracias.