Partage
  • Partager sur Facebook
  • Partager sur Twitter

morceau de code inconnu...

Anonyme
    12 octobre 2006 à 19:08:59

    Bonjour je viens de lire un code source.
    Dans celui ci, il y avais la ligne suivante :


    #ifndef HOOKAMP_H
    #define HOOKAMP_H

    #pragma comment(lib, "Win.lib")

    extern "C" {

    int __stdcall voir();
    void __stdcall cacher();

    }
    #endif


    A quoi correspond t-il ?
    • Partager sur Facebook
    • Partager sur Twitter
      12 octobre 2006 à 20:20:29

      Je vois plusieurs lignes... de quelle ligne parles-tu ?

      #ifndef HOOKAMP_H
      #define HOOKAMP_H

      Sont des directives classiques du preprocesseur, voir le cours de mateo.

      #pragma comment(lib, "Win.lib")
      sert a linker la librairie "Win.lib"


      extern "C"
      Sert à insérer du code en C dans un code C++.

      Le reste du code contient le prototype de deux fonctions et la fermeture du "#ifndef" , "#endif"
      • Partager sur Facebook
      • Partager sur Twitter
      Inkamath on GitHub - Interpréteur d'expressions mathématiques. Reprise du développement en cours.
        12 octobre 2006 à 20:40:38

        A préciser tout de même:

        extern "C" {

        int __stdcall voir();
        void __stdcall cacher();

        }

        Le:

        extern "C" {

        sert à dire que les fonction exportée/importée(donc çà a un liens avec une bibliothèque) sont nommées à la façon "C", c'est à dire sans la description de leur paramètres . En effet, par défaut en C++, une fonction exportée/importée contient dans son noms qui est illisible par ailleurs !) son type de retour et ses paramètres, le tout encodé de façon très générale .
        après la faon dont c'est nommé dépend de la convention d'appel et donc nous ammène directement au "__stdcall" qui définie la façon de passer les paramètres à la fonction car il y a plusieurs façon de faire .
        • Partager sur Facebook
        • Partager sur Twitter

        morceau de code inconnu...

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown