j'ai besoin de faire une interface graphique pour un tp avec le langage C(borland ou turbo) si c'est possible (faisable)indiquer moi un site ou autre ou je pe trouver les commandes et les instructions pour le faire?merci
Version imprimable
j'ai besoin de faire une interface graphique pour un tp avec le langage C(borland ou turbo) si c'est possible (faisable)indiquer moi un site ou autre ou je pe trouver les commandes et les instructions pour le faire?merci
Salut,
Tu peux par exemple utiliser l'API natif sous Windows: http://chgi.developpez.com/windows/
Moi, j'utilise en général GTK+ pour mes interfaces graphiques en C. Voici un tutoriel:
http://nicolasj.developpez.com/gtk/cours/
P.S. Je ne connais pas les compilateurs Borland et Turbo et je n'ai jamais essayé la bibliothèque GTK+ avec.
Thierry
Puisque tu utilises turbo je suppose que tu veux bien programmer sous DOS c'est ca? Il y a deux solutions :
Avant tout, sache que la mémoire vidéo (sous DOS) commence à l'adresse A000:0000. C'est dans la RAM bien sur. Sous DOS, une adresse est représenté sur 20bits (lorsqu'il s'agit de pointeurs far, c'est à dire autorisés à pointer des adresses hors du segment du programme) et il y a deux manières de réprésentation différentes ainsi A000:000 (mode segmenté) par exemple = en fait A000<<4 + 0000 soit A0000. A000 est appelée l'adresse du segment et 0000 l'offset par rapport à ce segment. Comme je l'ai dit, cette adresse c'est l'adresse de début de la mémoire vidéo autrement dit l'adresse du point de coordonnées (0, 0) sur l'écran. Le reste ca dépend du mode vidéo que tu utilises. Généralement, on utilise le mode 13h (320 x 200 en 256 couleurs) ou le mode 12h (640 x 480 en 16 couleurs). Tu l'auras deviné, en 256 couleurs un octet représente 1 pixel alors qu'en 16 couleurs il représente 2 pixels. Pour écrire dans un pixel, rien de plus simple. Exemple :Code:#include <dos.h>
Mais avant tout, il faut passer au mode graphique en appelant la fonction 0 de l'interruption 10h.Code:
1
2 char far * px = MK_FP(0xA000, 0); //MaKe Far Pointer *px = 255; //blanc
A la fin du mode graphique, il faut revenir en mode texte :Code:
1
2
3 _AH = 0; //Fonction 0 : changement de mode _AL = 0x13; //Mode 13h geninterrupt(0x10); //INT 10h
Deuxième solution (tu vas aimer :) )Code:
1
2
3 _AH = 0; _AL = 0x03; //Mode texte 80 x 25 16 couleurs geniterrupt(0x10)
Maintenant, il te reste plus qu'à aller sur google à la chasse de bons tutos :) . Mais honnêtement, je te conseille d'apprendre à programmer sous Windows.Code:
1
2
3
4
5
6
7
8
9
10
11
12 #include <graphics.h> int main() { int gDriver = DETECT, gMode; char DriverPath[] = "C:\\TC\\BGI"; initgraph(&gDriver, &gMode, DriverPath); putpixel(0, 0, 3); closegraph(); return 0; }