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.