Bonjour,
J'aimerai savoir comment on peut travailler en mode graphique sur le TC (turbo C). c-à-d, comment faire des graphes, les couleurs, les dessins....
Merci pour votre aide !
Bonjour,
J'aimerai savoir comment on peut travailler en mode graphique sur le TC (turbo C). c-à-d, comment faire des graphes, les couleurs, les dessins....
Merci pour votre aide !
En utilisant les fonctions de BGI (Borland Graphic Interface) déclarées dans <graphics.h>. L'aide intégrée de TC donne des exemples pour démarrer.
Attention, c'est rustique (VGA, 640 x 400, 4 couleurs...)
http://www.cs.colorado.edu/~main/cs1300/doc/bgi/
oui, on peut utiliser la bibliotheque graphics.h, mais sa se limite a 16 couleurs seulement, donc pas bien si vous souhaiter programmer des Games... alors, je pense que tu peut créer une lib perso avec des code assembleur activant des interuption comme par exemple le mode 256 avec
mais ça reste a toi dont decider !!! bon chance !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 asm mov ax, 13h int 10h end;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77 #include<conio.h> #include<stdio.h> #include<stdlib.h> #include<graphics.h> #include<dos.h> void graph() { int gdriver=DETECT , gmode, errorcode; initgraph(&gdriver, &gmode, ""); errorcode = graphresult(); if (errorcode != grOk) { printf("Graphics error: %s\n", grapherrormsg(errorcode)); printf("Press any key to halt:"); getch(); exit(1); } } void souris() { _AX=0; geninterrupt(0x33); //initialisation _AX=7; // nø de l'interruption _CX=5; _DX=634; // Xmin & Xmax geninterrupt(0x33); _AX=8; // nø de l'interruption _CX=5; _DX=475; // Ymin & Ymax geninterrupt(0x33); _AX=1; geninterrupt(0x33); //Affichage du curseur _AX=4; //nø de l'interruption _CX=78; //X initiale du curseur _DX=100; //Y initiale du curseur geninterrupt(0x33); do { do { _AX=3; //coute permanente d'un ventuel click geninterrupt(0x33); }while(_BX==0); if(_BX==1) //click sur le boutton gauche { if((600<_CX&&_CX<620)&&(20<_DX&&_DX<30)) {closegraph();exit(0);} if((200<_CX&&_CX<500)&&(100<_DX&&_DX<140)) { cleardevice(); setbkcolor(5); delay(20); setbkcolor(2); cleardevice(); getch(); exit(0);} } }while(1); } void main() { graph();setbkcolor(1); setfillstyle(5,2); setcolor(10); settextstyle(4,0,6); outtextxy(20,20," DOT-_-NET"); setcolor(RED); settextstyle(0,0,0); bar3d(600,20,610,30,3,1); outtextxy(600,20,"X"); setfillstyle(8,9); settextstyle(1,0,0); bar3d(200, 100, 500,140, 10, 4); setcolor(YELLOW); outtextxy(250,100,"Developpez.net"); souris(); }
Je suis entrain de développez un projet en C et j’ai voulu avoir des idée pour les dessins que je dois mètre dans mon projet
On peut faire du mode 13h avec la libraire graphics. Lire la doc de initgraph. Mais je ne suis pas contre l'idée de développer sa propre lib, c'est à la fois amusant et ça permet de faire bien de choses. Mais en 2008, je crois qu'il vaut mieux quand même laisser MS-DOS reposer en paix et utiliser les fonctions de Windows (si on est sous Windows ...)
Oui, mais il y a encore de la programmation sous MS-DOS, je sais pas moi, par exemple les jeux simple, un simple system, un utilitaire de boot, ...
en peut utiliser du graphique la dans !!
Et merci pour l'information sur la lib graphic, j'ai travail avec cette lib il y a plus de 6 ans, et je suis pas sure qu'elle donne la possibilité de manipuler les object en 256 couleur....
un utilitaire de boot n'est pas un programme MS-DOS. C'est un petit programme qui sera chargé en mémoire centrale par un programme résidant essentiellement en mémoire morte. Rien à voir avec le DOS qui est un système d'exploitation qui a connu des beaux jours, mais qui doit maintenant laisser la place à d'autres systèmes plus évolués. Mais je le répète, apprendre la programmation sous DOS peut conduire à une meilleure compréhension du fonctionnement du PC. Mais il ne faut pas trop s'accoutumer.Envoyé par cmoibal
Oui, oui, je sais ça, mais on peut dire que la console Windows est une version recente de MS-DOS ( mais pas MS-DOS).
et pour le boot, on utilise la version stand-alone MS-DOS pour le bootstarpping.
Encore une petite remarque : on peut gérer les thread avec MS-DOS ( vue que Windwos 3.xx etait un programme sur MS-DOS au debut ).
Je crois que c'est toi qui confonds MS-DOS, Console et TUI.
Windows 3.xx ne supportait pas le multithread... Il n'y avait qu'un multitâche coopératif où chaque application avait sa propre fibre, mais il n'y avait qu'un seul thread (fil).
Et à ma connaissance, le boot des Windows de la famille NT n'a jamais reposé sur DOS.
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Merci pour vos réponses.
Petit soucis, le TC ne marche pas avec Vista !!
Alors ça y'est, MS a fini par abandonner la VM 16-bit mode réel...
Et ça te surprend ? TC est un outil des années 90. On est en 2008... L'abandon du mode 16-bit est annoncé depuis 1995.
Je te conseille de passer à des outils plus modernes comme Visual C++ 2008 ou Code::Blocks (il y a quelques précautions d'installations sous Vista)
ça me surprend pas. Je suis plutôt surpris car notre prof nous demande de faire une recherche pour cela.
J'utilise le VC++ déjà que je vais bientôt associer à l'SDL
Je crois que ce n'est pas une question de Vista ou pas Vista, mais une question de 64 bits ou pas 64 bits...
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
j'ai pas dis que Windows XP ou NT etait de base DOS, mais Windows 9x, oui.
tu sais que j'ai travaillé avec Windows 3.1, et la remarque que je veut la posser , ce que avec se system, on entre tout dabord sous MS-DOS, puis on lance Windows3.1. Avec ce System, on peut lancer plusieur terminal DOS, lancer plusieurs programme en même temps. si c'est pas de multi-thread, je sais pas quesque ça peut être ?Windows 3.xx ne supportait pas le multithread... Il n'y avait qu'un multitâche coopératif où chaque application avait sa propre fibre, mais il n'y avait qu'un seul thread (fil).
J'ai dit ce que c'était: Du multitâche coopératif. Je ne pense pas que tes deux programmes tournaient activement en parallèle...
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Partager