Programación General > C/C++

 Re: Puerto paralelo y Visual C++ 6

(1/1)

Aleister:
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.

JuanK:
El problema no es de tui codigo..en tyeoria esta bien (hablo por lo del far), peo lo ciertyo es que esta sentencia ha sido abolida por la gran mayoria de compiladoreas, y ahora tran una funcion que te convierte la variable a un tipo far.. o mejor que asignan espacio a la variable como si esta fuera una tipo far.

Para tales fines deberias referirte a la ayuda de tu compilador o en tu caso tambien puedes recurrir a la ayuda en linea de microsoft.

Ya miraste el foro de publicaiones y e boocks...tal ves  alli puedas encontrar algo.

Juank

Aleister:
Lo que pasa (además del compilador) es que en win32 no se puede acceder libremente a todas las posiciones de memoria, por eso cuando uso los LPDWORD's compila bien pero me arroja un error de violación de acceso. Una primera solución es usar la CreateFile(...), así que a aprender.

Navegación

[0] Índice de Mensajes

Ir a la versión completa