2011-10-22 14 views
11

Ho cercato di ottenere i codici sorgente del file di intestazione e della libreria associata per integrarlo con il mio programma C++.Come posso ottenere e utilizzare il file di intestazione <graphics.h> nel mio programma C++?

Allo stesso tempo, sono interessato a quelle librerie multipiattaforma che funzionano su più di un compilatore. Giusto per essere più esplicito, sto parlando di quelle librerie che sono usate per disegnare forme, linee e curve in C++.

+3

Possibili duplicati: http://stackoverflow.com/questions/671395/a-simple-2d-cross-platform-graphics-library-for-c-or-c http://stackoverflow.com/questions/1924171/simple-c-graphics-library http://stackoverflow.com/questions/4496541/c-graphics-library-in-visual-studio-and-eclipse – user786653

+0

Se il vecchio codice fa riferimento a 'graphics.h' o se lo si desidera ancora per usarlo per qualche ragione, usa [WinBGIm] (http://winbgim.codecutter.org/), una porta moderna dell'originale. – legends2k

risposta

15

<graphics.h> è una libreria molto vecchia. E 'meglio usare qualcosa che è nuovo

Ecco alcune librerie 2D (indipendente dalla piattaforma) per C/C++

SDL

GTK+

Qt

Inoltre v'è un libero molto potente libreria grafica 3D open source per C++

OGRE

+1

Grazie per la risposta precisa! – CompilingCyborg

5

<graphics.h> non è un'intestazione standard. Più comunemente si riferisce all'intestazione dell'API BGI di Borland per DOS ed è alquanto antiquata.

Tuttavia è molto semplice; esiste un'implementazione Win32 dell'interfaccia BGI denominata WinBGIm. Viene implementato tramite chiamate GDI Win32, l'interfaccia grafica Windows di livello più basso. Dato che è fornito come codice sorgente, è forse un modo semplice per capire come funziona GDI.

WinBGIm tuttavia non è affatto multipiattaforma. Se tutto ciò che si desidera è una semplice grafica primitiva, la maggior parte delle librerie GUI di livello superiore come wxWidgets e Qt supportano anche questo. Vi sono librerie più semplici suggerite nelle possibili risposte duplicate menzionate nei commenti.

+0

WinBGIm è piuttosto vecchio - ultimo aggiornamento nel 2004 ?? - e non è affatto un'API standard. – duskwuff

+0

@duskwuff: non sono sicuro di quale punto si stia tentando di fare. Sembra che si applichi alla domanda piuttosto che alla mia risposta. Essere vecchi non è un problema quando l'API implementata non è cambiata. Ho dichiarato chiaramente che non è una libreria standard. Non esiste una libreria standard per la grafica. Tutti i tuoi punti sono già stati fatti in risposte esistenti e la domanda stessa ha 6 anni (quindi al momento della scrittura, WinBGIm non era così vecchio). – Clifford

4

C'è una porta moderna per questa interfaccia grafica Turbo C, si chiama WinBGIM, che emula grafica BGI in MinGW/GCC.

Non l'ho provato ma sembra promettente. Ad esempio initgraph crea una finestra e da questo punto è possibile disegnare in quella finestra utilizzando le buone vecchie funzioni, alla fine closegraph elimina la finestra. Ha anche alcune estensioni più avanzate (ad esempio la gestione del mouse e il doppio buffering).

Quando mi sono spostato dalla programmazione DOS a Windows, non avevo Internet e ho pregato per qualcosa di semplice come questo. Ma alla fine ho dovuto imparare come creare Windows e come gestire gli eventi e utilizzare i contesti dei dispositivi dall'aiuto offline di Windows SDK.

Problemi correlati