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 :

le type HANDLE


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de kawther
    Inscrit en
    Avril 2006
    Messages
    307
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2006
    Messages : 307
    Par défaut le type HANDLE
    Bonjour;
    j'ai cette partie de code que je n'ai pas compris, quelqu'un peut m'aider:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    typedef struct {
       HANDLE hData;
       HANDLE hImage;
       int  width;   /* Horizontal width of image in pixels */
       int  height;  /* Vertical height of image in pixels (also number of rows) */
       UNCHAR  huge  *data;   /* Image data, 1 byte per pixel, in large row-major block */
       UNCHAR  huge **image;  /* Array of pointers to beginning of each data row */
    } image_type;
    ce que je n'ai pas compris c'est c'est quoi ce HANDLE?
    et merci d'avance.

  2. #2
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    En général, un HANDLE est un pointeur (void *) opaque géré par Windows. C'est opaque parce que l'utilisateur ne sait pas (et n'a pas besoin de savoir) sur quoi pointe ce HANDLE.

    C'est Windows qui gère cet objet, qui l'alloue, qui écrit dedans qui le libère etc.

    Un HANDLE est retourné par certaines fonctions Windows, l'utilisateur le garde dans un coin du code et le fournit à Windows lorsqu'il y a des manipulations à faire sur cet objet.

    Par exemple, la fonction CreateThread() retourne un HANDLE. Ce HANDLE pourra être utilisé pour manipuler ce thread (par exemple avec la fonction SuspendThread)
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  3. #3
    Membre éclairé Avatar de kawther
    Inscrit en
    Avril 2006
    Messages
    307
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2006
    Messages : 307
    Par défaut
    Merci bien Raymond, vraiment vous me simplifiez la vie.

  4. #4
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    HANDLE pourrait se traduire en français par "Poignée" c'est à dire un "machin" qui permet de tenir un "truc" (dans mon exemple, un pointeur qui permet de manipuler un thread).

    PS : ne pas oublier le bouton
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  5. #5
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 392
    Par défaut
    Il y a aussi deux façons différentes d'utiliser le type HANDLE sous Windows.
    • L'une est pour désigner les objets du Kernel (comme un fichier ouvert par CreateFile(), un processus, etc.), ce qu'on appelle les "vrais" HANDLEs.
    • L'autre est pour désigner d'autres types de handles, ou plusieurs types possibles (comme la fonction LoadImage(), qui retourne soit un HBITMAP (handle GDI), soit un HICON ou HCURSOR (handles spéciaux qui ne sont pas exactement gérés par GDI).

    Le bout de code que tu montres ne me suffit pas pour savoir quelle utilisation est faite de ces handles.
    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.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème compilation: ne reconnait pas le type handle
    Par sigfrit dans le forum Visual C++
    Réponses: 2
    Dernier message: 02/07/2009, 19h22
  2. Réponses: 6
    Dernier message: 22/01/2008, 19h40
  3. [type] HANDLE vs HINSTANCE
    Par ZaaN dans le forum Visual C++
    Réponses: 4
    Dernier message: 23/01/2007, 14h35
  4. types HANDLE, DWORD, DCB incompris
    Par sanatou dans le forum Windows
    Réponses: 1
    Dernier message: 01/11/2006, 11h24
  5. comment gérer le type HANDLE sous linux?
    Par poune dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 11/06/2004, 11h12

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