[VC++] char FAR *toto ?! kesako ?

char FAR *toto ?! kesako ? [VC++] - C++ - Programmation

Marsh Posté le 28-08-2003 à 08:39:06    

voila, j'ai trouvé ca, dans un char FAR * ils stockent le nom de l'ordinateur, comment faire pour le mettre dans un char*, et qu'est-ce qu'un char FAR * ??!!
 
merci :-p


---------------
http://husiana.myftp.org/phpsysinfo
Reply

Marsh Posté le 28-08-2003 à 08:39:06   

Reply

Marsh Posté le 28-08-2003 à 08:43:58    

Ca date de l'époque du DOS ou la mémoire était segmentée en blocs de 64 Ko. Quand tu déclarais une variable en FAR, tu indiquais au compilo que tu voulais que cette variable soit dans un segment différent du segment courant


Message édité par Harkonnen le 28-08-2003 à 09:02:56

---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 28-08-2003 à 08:46:28    

mais pourquoi alors qd je mets un char * au lieu du char FAR * il chie ? ca devrais passer maintenant ac le compilo de Vc++ ?!

Reply

Marsh Posté le 28-08-2003 à 08:53:28    

Bah tu castes, c'est tout..

Reply

Marsh Posté le 28-08-2003 à 08:54:48    

je quoi...?:-/

Reply

Marsh Posté le 28-08-2003 à 08:58:31    

void fonction(char far *p);
 
char *r ;
fonction(static_cast<char far *>(r)) ;


Message édité par *syl* le 28-08-2003 à 09:00:13
Reply

Marsh Posté le 28-08-2003 à 09:08:03    

hum hum, zarbe :-p!
 
j'ai fais ca et ca marche partout, sauf sur un poste, il me renvoie du caca, il est sur XP pro mais ca fonctionne sur les autres XP Pro ou 2000Pro...bizzare koi!
 
char      *tetedezob(char FAR buffer[64])
{
    char  str[64];
/*
.....
*/
    for (int i = 4; i != (64 - phe->h_length);i++)
        str[i - 4] = phe->h_addr_list[I][i];
 
    return (str);
}
 
merci a vous, je sais ce que c'est un char FAR * maintenant :-p!

Reply

Marsh Posté le 28-08-2003 à 09:48:27    

husiana a écrit :

Code :
  1. char      *tetedezob(char FAR buffer[64])
  2. {
  3.     char  str[64];
  4. /*
  5. .....
  6. */
  7.     return (str);
  8. }




 
Tu renvoies une variable locale !!! Tu as de la chance que ça marche sur certaines machines.
 
Et sinon, il me semble que FAR est défini dans les headers Windows comme ne correspondant à rien (#define FAR), donc tu n'as même pas besoin de cast.


---------------
each day I don't die is cheating
Reply

Marsh Posté le 28-08-2003 à 10:06:35    

[citation=500262,1]
Tu renvoies une variable locale !!! Tu as de la chance que ça marche sur certaines machines.
[/citation]
 
On a plutot de la chance que son programme ne marche pas sur une machine.. Son bug aurait pu passer inaperçu..
 
LeGreg


Message édité par LeGreg le 28-08-2003 à 10:06:46
Reply

Marsh Posté le 28-08-2003 à 10:37:19    

merci les gens, BUG resolu, tt marche niquel!
 
sympatoche :-p!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed