Hola Novatin.
Cita:
Empezado por Novatin
Porque TurboC++ si puede acceder a obtener la fecha de bios de esta manera y Builder c++ No?
|
Es que como te comenté anteriormente,
Turbo C fue desarrollado para trabajar en entorno DOS y genera aplicaciones de 16 bits por lo que no tendrá problemas con acceder a esas direcciones.
Cita:
Empezado por Novatin
ncontré este pequeño fragmento de código que esta escrito en TurboC, y funciona correctamente en winxp , winmillenium y msdos...
Código:
#include <dos.h>
#include <stdio.h>
void main()
{
int foo, i;
printf("\n");
for(i=0;i<8;i++)
{
foo = peekb(0xf000, 0xFFF5+i);
printf("%c", foo);
}
printf("\n");
}
Pero no puedo hacer que funcione en builder... porque no me reconoce la función "peekb", .. alguna idea para implementarla en builder?? .
|
El código anterior (sin utilizar
peekb) puede implementarse como:
Código:
#include <stdio.h>
int main(void)
{
unsigned char far *p = (unsigned char far *)0xF000FFF5; // (*)
int i;
for(i=0; i<8; i++)
printf("%c",(unsigned char far) *(p+i));
getchar();
return 0;
}
Funcionará bíen con
Turbo C, pero no será así en el compilador de 32 bits de
Builder C++.
(*) Builder c++ no necesita
far pointers por lo antedicho, es decir que si deseas probarlo en Builder C++ para salir de dudas, debes quitar
"far" del código.
Saludos.