Ver Mensaje Individual
  #6  
Antiguo 23-05-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Novatin.
Cita:
Empezado por Novatin Ver Mensaje
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 Ver Mensaje
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.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita