• Domingo 28 de Abril de 2024, 23:51

Autor Tema:  Re: Puerto paralelo y Visual C++ 6  (Leído 1499 veces)

Aleister

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Puerto paralelo y Visual C++ 6
« en: Jueves 22 de Mayo de 2003, 02:29 »
0
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

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Puerto paralelo y Visual C++ 6
« Respuesta #1 en: Jueves 22 de Mayo de 2003, 14:46 »
0
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
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

Aleister

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Puerto paralelo y Visual C++ 6
« Respuesta #2 en: Viernes 23 de Mayo de 2003, 22:06 »
0
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.