SoloCodigo
Programación General => C/C++ => C++ Builder => Mensaje iniciado por: betitono1 en Jueves 25 de Marzo de 2004, 21:03
-
Este procedimiento es para detectar el puerto paralelo en c pero me marca un error de violacion de acceso al querer imprimir el puntero *puntero_a_direccion, alguien podira decirme porque.
Esto lo compile en c++ builder 5
#include <vcl.h>
#include <conio.h>
#include <stdio.h>
Lo compile en c++ builder 5
#include <dos.h>
#pragma hdrstop
//---------------------------------------------------------------------------
#pragma argsused
int main(int argc, char* argv[]){
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%Xh\n", i+1, *puntero_a_direccion); [ B]//aqui aparece error [/B] puntero_a_direccion++;
}
return 0;
}
-
porque esa direccion en windows no se usa, eso es una app de DOS y en windos da violacion de acceso pro que es un area reseervada para el sistema esa.
tenes que usar otro metodo a travez de la api o algun control activex para que no joda para nada.
En programacion las cosas no son copy&paste
slds.
-
El codigo que envie lo hacia supuestamente en DOS me imagino que también lo debe de hacer cualquier versión de windows, además solo se esta realizando una lectura no se hace alguna modificación y si no funcionara como le podira hacer entonces para conocer la dirección del puerto paralelo?
Saludos
-
REpito, es windows, n podes usar rutinas de DOS, entendes?.
Para que queres saber la direccion?, si es para controlarlo, tenes que hacerlo con la api de windows o algun control y/o libreria que te facilite las cosas.
No podes hacer el mismo manejo en DOS que en Windows con respecto a los ppunteros a memoria especificos y al codigo en assembler.
slds.