25 votes

Comment puis-je obtenir et utiliser le fichier d'en-tête <graphics.h> dans mon programme C++ ?

J'ai cherché à obtenir le code source du fichier d'en-tête <graphics.h> et sa bibliothèque associée afin de l'intégrer à mon programme C++.

En même temps, je suis intéressé par les bibliothèques multiplateformes qui fonctionnent avec plus d'un compilateur. Pour être plus explicite, je parle de ces bibliothèques qui sont utilisées pour dessiner des formes, des lignes et des courbes en C++.

35voto

ammar26 Points 470

<graphics.h> est une très vieille bibliothèque. C'est mieux d'utiliser quelque chose de nouveau.

Voici quelques bibliothèques 2D (indépendantes de la plate-forme) pour C/C++.

SDL

GTK+

Qt

Il existe également une bibliothèque graphique 3D gratuite, très puissante et à code source ouvert pour C++.

OGRE

14voto

Clifford Points 29933

<graphics.h> n'est pas un en-tête standard. Le plus souvent, il fait référence à l'en-tête de l'API BGI de Borland pour DOS et est, au mieux, désuet.

Cependant, c'est très simple ; il existe une implémentation Win32 de l'interface BGI appelée WinBGIm . Il est mis en œuvre à l'aide d'appels Win32 GDI - l'interface graphique Windows de plus bas niveau. Comme il est fourni sous forme de code source, il s'agit peut-être d'un moyen simple de comprendre le fonctionnement de GDI.

WinBGIm n'est cependant en aucun cas multiplateforme. Si tout ce que vous voulez, ce sont des primitives graphiques simples, la plupart des bibliothèques d'interface graphique de plus haut niveau telles que wxWidgets et Qt les prennent également en charge. Il existe des bibliothèques plus simples suggérées dans les réponses possibles en double mentionnées dans les commentaires.

10voto

Calmarius Points 2626

Il existe un portage moderne pour cette interface graphique Turbo C, il s'appelle WinBGIM qui émule les graphiques BGI sous MinGW/GCC.

Je n'ai pas encore essayé mais cela semble prometteur. Par exemple initgraphe crée une fenêtre, et à partir de ce point, vous pouvez dessiner dans cette fenêtre en utilisant les bonnes vieilles fonctions, à la fin graphique fermé supprime la fenêtre. Il dispose également de quelques extensions plus avancées (par exemple, la gestion de la souris et la double mise en mémoire tampon).

Lorsque je suis passé de la programmation DOS à Windows, je n'avais pas Internet et j'ai supplié pour avoir quelque chose de simple comme ça. Mais à la fin, j'ai dû apprendre à créer Windows, à gérer les événements et à utiliser les contextes de périphériques à partir de l'aide hors ligne du SDK Windows.

4voto

user4581301 Points 18060

L'interface graphique de Borland, la bibliothèque présentée par l'en-tête graphics.h, a été réimplémentée au sommet de la hiérarchie. SDL . Cela permet de prendre en charge le matériel et les systèmes d'exploitation modernes (plusieurs systèmes d'exploitation, en fait, puisque SDL est assez portable).

Il peut être téléchargé ici préconstruits pour une variété de cibles de bureau communes.

Ou si vous souhaitez (ou devez) le construire à partir des sources, voici un miroir github .

Notez qu'il s'agit du portage d'une bibliothèque logicielle très ancienne et qu'elle ne fonctionnera pas avec des outils modernes. Vous devez donc vérifier auprès de l'instructeur si vous avez l'intention de l'utiliser pour des travaux de classe. Il serait irritant d'échouer à un devoir parce que vous avez utilisé des idiomes qui nécessitent le support d'un compilateur moderne et de découvrir qu'ils ne compilent pas sur un système de notation des années 1980.

Vous trouverez peut-être préférable d'obtenir et de développer avec un clone de machine virtuelle du système de marquage pour éviter les mauvaises surprises.

3voto

graphics.h ressemble à quelque chose qui était autrefois fourni avec Borland et/ou Turbo C++, dans les années 90.

http://www.daniweb.com/software-development/cpp/threads/17709/88149#post88149

Il est peu probable que vous trouviez un support pour ce fichier avec un compilateur moderne. Pour d'autres bibliothèques graphiques, consultez la liste des questions "connexes" (questions liées à celle-ci). Par exemple, "Une bibliothèque graphique simple, 2d et multiplateforme pour c ou c++ ?" .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X