IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

librairie vga.h + vga en général


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Avril 2007
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1
    Par défaut librairie vga.h + vga en général
    bonjour,
    je voulais executer le code suivant trouvé à l'adresse http://www-ipst.u-strasbg.fr/pat/pro...doc-vga.htm#c1 :
    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
     #include <stdio.h>
     #include <stdlib.h>
     #include <vga.h>
     
    int choix_mode(void)
    {
     int m;
     m=vga_getdefaultmode();   //retourne la valeur de la variable d'environnement
                               // SVGALIB_DEFAULT_MODE, -1 si inconnue   
    return 4; //4 marche presque toujours.
    }
     
    void tracecadre(void)
    {
     int x,y,coul,i;
     x=vga_getxdim();  //récup résolution actuelle
     y=vga_getydim();
     // coul=vga_getcolors(); //récup nb de couleurs dans le mode actu
     coul=vga_white();     //récup n° de couleur du blanc dans le mode actu
     vga_drawline(0,0,x-1,0);
     vga_drawline(x-1,0,x-1,y-1);
     vga_drawline(x-1,y-1,0,y-1);
     vga_drawline(0,y-1,0,0);
    }
     
     int main(void)
     {
        int i,mode;
        mode=choix_mode();
        vga_init();
    //    vga_setmode(G320x200x256); //à l'IPST, 207 et pat, ok jusqu'à 12
        vga_setmode(mode);
        tracecadre();
     
        vga_setcolor(14);
    /***********************
    ces couleurs sont celles définies en VGA standard,
     0      - black.
     1      - blue.
     2      - green.
     3      - cyan.
     4      - red.
     5      - magenta.
     6      - brown.
     7      - grey.
     8      - dark grey (light black).
     9      - light blue.
     10     - light green.
     11     - light cyan.
     12     - light red.
     13     - light magenta.
     14     - yellow (light brown).
     15     - white (light grey).
     
     ******************************/
     
     
        for(i=0;i<vga_getydim();i++) vga_drawpixel(i,i); //0,0=coin sup gauche
     
        fprintf(stderr,"appuyez une touche pour quitter"); //on ne peut pas écrire dans le graphique mais dans la console ayant lancé le prog
        vga_getch();  //attend un touche, retroune la touche appuyée (si nécessaire)
                      //vga_getkey() lit mais n'attend pas (retourne 0 si rien d'appuyé)
        // sleep(20); //attendre, quand vga_getch ne marchait pas
     
        vga_setmode(TEXT); //retourner au mode texte (important)
        printf("fini\n");  //les printf se font sur la console où on a lancé la commande (ou dans CTRL ALT 8 suivant les cas)
        return EXIT_SUCCESS;
     }
    Ce code est une première ilustration de l'utilisation de svgalib.

    Le problème que j'ai rencontré est que je ne possède pas la librairies vga.h.

    Du coup je suis allé voir sur google si c'était pas possible de la récupérer. J'ai trouvé qq chose sur koders entre autres mais même avec ça certaines parties du code sont incompréhensibles à mon compilateur.
    pour chaque fonction vga_* il me renvoit :
    undefined reference to 'vga_gexdim'
    undefined reference to 'vga_setmode' etc...

    Si vous avez des idées ou besoin de plus de précisions, faites moi signe

  2. #2
    Membre Expert
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Par défaut
    Un fichier entete n'est que l'interface d'une bibliotheque, necessaire pour la compilation. Pour l'edition de lien (phase finale de la creation de l'executable), tu as besoin de la bibliotheque elle-meme (un fichier .a/.so ou .lib/.dll selon ton systeme). Bref, il faut installer ta bibliotheque proprement.

  3. #3
    Membre Expert
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Par défaut
    Salux,

    On le repetera jamais assez : un .h n'est pas une librairie.
    Pour utiliser une librairie, il faut penser à la linker à l'executable.
    Et pour se faire, il faut d'abord que l'environnement de developpement de la lib soit installé (c a d, les .h et la lib elle meme doivent être à disponibles)

    http://www.svgalib.org/jay/beginners...ers_guide.html

Discussions similaires

  1. Dev C++ et mode VGA (13h)
    Par bootix dans le forum Dev-C++
    Réponses: 11
    Dernier message: 09/12/2007, 14h52
  2. codes couleur vga
    Par arcane dans le forum Ordinateurs
    Réponses: 3
    Dernier message: 02/05/2005, 23h33
  3. [Win2k Server] driver vga
    Par portu dans le forum Windows Serveur
    Réponses: 4
    Dernier message: 04/10/2004, 15h38
  4. VGA : synchro verticale (et horizontale ?)
    Par Blustuff dans le forum Assembleur
    Réponses: 19
    Dernier message: 21/06/2003, 08h46
  5. [TP]mode vga
    Par mikoeur dans le forum Turbo Pascal
    Réponses: 3
    Dernier message: 05/07/2002, 23h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo