SoloCodigo
Programación General => C/C++ => C++ Builder => Mensaje iniciado por: Mig-el en Jueves 9 de Diciembre de 2004, 15:06
-
Tengo que hacer un programa utilizando interrupciones pero el C++ Builder no me reconoce la union REGS ni la funcion int86. Segui al pie de la letra las instrucciones de mi profesor pero no funciona, se que en algo estoy mal. Que archivo de cabecera debo agregar? o que me falta hacer? Por favor es urgente.
-
Hola, una consulta, estas sobre WindowsXP??.. si es asi, creo que no te dejara ni manejar el mouse por interrupciones.. a mi no me deja manejar el puerto :( ... Saludos! :suerte:
-
Si, estoy usando XP. entonces que puedo hacer para solucionar el problema? no hay forma de que funcione con XP? tengo que usar otra plataforma?
-
En XP el uso de interrupciones esta reestringido, es parte de la proteccion del OS... lo que podes hacer es crear lo que necesitas sin usar interrupciones... usando las apis.. si necesitas crear si o si con interrupciones te recomiendo que utilices Win 98 .. ese no tiene problemas. Espero haber sido util. Saludos :hola: :suerte:
-
Muchas gracias, pero si es necesario el uso de interrupciones ya que es un programa con el que me van a evaluar en la escuela y son requisitos. Bueno de todos modos gracias
-
La unión REGS está definida en el archivo de cabecera dos.h de la siguiente manera:
struct WORDREGS
{
unsigned int ax, bx, cx, dx, si, di, flags ; //OJO! Fíjate que carecen de la 'e' (eax, ebx...) es porque se tratan como registros de un procesador de 16 bits, ahí está el problema.
};
struct BYTEREGS
{
unsigned char al, ah, bl, bh, cl, ch, dl, dh ;
};
union REGS
{
WORDREGS x ;
BYTEREGS h ;
};
No funciona con C++Builder porque éste utiliza un compilador de 32bits y en la versión dos.h de 32bits no se encuentra definida esta unión, para que te funcione el código debes compilarlo con un compilador de 16bits como el Turbo C++ de Borland que trabaja a 16bits.
Un saludo y Suerte... :hola:
-
Ya consegui el compilador y todo funciono perfecto, gracias.
-
Hola Miq-el
cuando dices que funciono, ¿te refieres tambien a las interrupciones?, si es asi, te pediría que me dijeras, como se cambia el vector de una interrupcion (en Builder por supuesto y tanto interrupcion hardware como software) para que funcione en XP, para poder hacer, por ejemplo, el tipico reloj que en MSDOS y hasta W Me funcionaba acoplado al reloj del sistema, es que pretendo hacer una placa de adquisición de datos y me hace falta saber esto.
Gracias.
-
en windows 2000 o windows xp, pueden usar el djgpp y alli podran usar interrupciones al estilo del turboc (todo gracias a que ionternamente el djgpp emula un dos corriendo sobre plataforma de 16 bit)