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

Windows Discussion :

tutoriel : La programmation de l'API Windows en C++ par Bob


Sujet :

Windows

  1. #1
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 749
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 749
    Points : 10 666
    Points
    10 666
    Billets dans le blog
    3
    Par défaut tutoriel : La programmation de l'API Windows en C++ par Bob
    Excellent tutoriel : La programmation de l'API Windows en C++ par Bob :
    http://bob.developpez.com/tutapiwin/

  2. #2
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 105
    Points : 47
    Points
    47
    Par défaut
    je suis tout a fait d'accord il m'a beaucoup aidé pour debuter. un grand merci

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2005
    Messages
    700
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2005
    Messages : 700
    Points : 488
    Points
    488
    Par défaut
    Oui !!!

    Vraiment un grand merci à Bob !!!

    ce tutorial est vraiment bien fait, il permet de rapidement faire mumuse avec les API Windows quand on n'y connait rien de rien ! De plus je trouve ca assez ludique, et bien qu'il soit tres peu détaillé, il est tres bien formulé, ca permet de se mettre dans le bain sans etre découragé.

    Ce que j'ai apprécié aussi c'est que malgrès qu'il commence à dater, il est toujours à l'ordre du jour, puis quasiment pas de faute de frappe dans les codes sources donnés en exemple, et ca, ca compte enormément !!!

  4. #4
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 749
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 749
    Points : 10 666
    Points
    10 666
    Billets dans le blog
    3
    Par défaut
    CGi est en train de rédiger sa série de tutoriels aussi:
    http://chgi.developpez.com/windows/

  5. #5
    Futur Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 6
    Points : 7
    Points
    7
    Par défaut compilation API windows
    J'utilise DEV C++LES deux premiers chapitre du tutorial API Windows en C se passent bien, mais pour le 3 (Les commandes et notifiocations) la compilation compilation plante sur GetStockObject, avec le message d'erreur:
    [linker error] undefined refernce to GetStockObject@4
    Merci de m'aider

  6. #6
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 749
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 749
    Points : 10 666
    Points
    10 666
    Billets dans le blog
    3
    Par défaut
    http://msdn.microsoft.com/library/en...vcons_1t10.asp
    Requirements
    Windows NT/2000/XP/Vista: Included in Windows NT 3.1 and later.
    Windows 95/98/Me: Included in Windows 95 and later.
    Header: Declared in Wingdi.h; include Windows.h.
    Library: Use Gdi32.lib
    il faut lier avec -lgdi32 dans ton cas.

  7. #7
    Futur Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 6
    Points : 7
    Points
    7
    Par défaut API Windows en C
    Merci à Aurélien.
    Le lien avec lgdi 32 a fonctionné. Mais maintenant j'ai un probleme identique au chapitre 4(Les boites de dialogues communes). C'a plante sur
    "GetOpenFileName".
    Ai-je oublié de rajouté une bibliotheque?

  8. #8
    En attente de confirmation mail
    Inscrit en
    Juin 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Liste API
    Bonjour,

    Bravo pour le travail !

    Où peut-on trouver la liste les API Windows 2000 avec leurs définitions ?

    Merci.

  9. #9
    Futur Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 6
    Points : 7
    Points
    7
    Par défaut API Windows par CGI Afficher des images
    Je code en dev-C++. Chapitre 15 Afficher des images, l'execution me donne une fenetre vide, sans l'image attendue.J'ai placé son fichier ("image.bmp") dans le repertoire Dev-Cpp. est-ce le bon emplacement?

  10. #10
    Membre régulier
    Inscrit en
    Décembre 2006
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 103
    Points : 113
    Points
    113
    Par défaut
    A mon avis, pour afficher des images, il faut les mettre dans le même répertoire que le .exe.
    S'éloigner, ce n'est pas forcément partir.

  11. #11
    Candidat au Club
    Inscrit en
    Août 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 2
    Points : 2
    Points
    2
    Par défaut API windows
    Salut

    Moi je voulais une API permettant de recupérer les données sur un formulaire(fenêtre) et les convertir dans dans différents formats (nombre, text, date)

  12. #12
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2008
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Un Grand Merci Pour Le Tutoriel

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 15
    Points : 16
    Points
    16
    Par défaut
    bonjour à ts,
    alors est- ce quelqu'un sait comment on peut faire pour suspendre, arrêter et relancer un processus par un autre processus sous windows en utilisant Visual C++.

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    J'ignore si c'est seulement possible.
    Non seulement il faudrait suspendre tous ses threads et lire toute sa mémoire pour pouvoir l'enregistrer, mais il faudrait en plus lire le contexte de chaque thread, pour enregistrer également.
    Et je ne parle même pas de la reprise, ou il faudra trouver le moyen de recharger le contexte en question pour que chaque thread parte de l'endroit où il a été suspendu...

    Je dirais qu'il n'est pas réaliste de faire ça sur un programme arbitraire. Je pense qu'on peut faire ça sur des programmes spécialement développés pour répondre à des commandes du genre "sauvegarde tout et quitte" et "recharge directement ceci au lancement"...

    Edit: Mauvais thread... splifo a squatté celui-ci au lieu de répondre dans le sien!
    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.

  15. #15
    Inactif
    Inscrit en
    Février 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    J'ignore si c'est seulement possible.
    "J'ignore" , "je ne ne sais pas", "je ne crois pas"
    Pourquoi réponds-tu ce genre de réponse constamment alors ?!
    Evidemement que c'est possible.
    Il faudrait lire le Petzold pour avoir un minimum de bases quand même...

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Tu parles comme un clone de sylvain69.

    Indique des références précises sur comment c'est fait, sinon tu dis du vide.
    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.

  17. #17
    Membre émérite Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Points : 2 280
    Points
    2 280
    Par défaut
    Citation Envoyé par lucas69 Voir le message
    "J'ignore" , "je ne ne sais pas", "je ne crois pas"
    Pourquoi réponds-tu ce genre de réponse constamment alors ?!
    Parce qu'il ne se risque pas à dire des bêtises contrairement à d'autre..

    Citation Envoyé par lucas69 Voir le message
    Il faudrait lire le Petzold pour avoir un minimum de bases quand même...
    Ou est le rapport? Charles Petzold est un expert en programmation graphique sous windows pas en programmation système.

    Le seul moyen de faire ça proprement: il faut que le processus qui suspend/réveille l'autre processus soit un débogueur (voir WaitForDebugEvent() et ContinueDebugEvent() ).

    Autrement on peut tenter ce genre d'aventure :
    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
    VOID SuspendProcess(DWORD dwProcessID, BOOL fSuspend) { 
     
       // retourne la liste des threads   
       HANDLE hSnapshot = CreateToolhelp32Snapshot( 
          TH32CS_SNAPTHREAD, dwProcessID); 
     
       if (hSnapshot != INVALID_HANDLE_VALUE) { 
     
          // on parcourt la liste. 
          THREADENTRY32 te = { sizeof(te) }; 
          BOOL fOk = Thread32First(hSnapshot, &te); 
          for (; fOk; fOk = Thread32Next(hSnapshot, &te)) { 
     
             // le thread fait il parti du processus 
             if (te.th32OwnerProcessID == dwProcessID) { 
     
                // conversion de l'ID du thread en handle. 
                HANDLE hThread = OpenThread(THREAD_SUSPEND_RESUME, 
                   FALSE, te.th32ThreadID); 
     
                if (hThread != NULL) { 
     
                   // suspension ou reprise 
                   if (fSuspend) 
                      SuspendThread(hThread); 
                   else 
                      ResumeThread(hThread); 
                } 
                CloseHandle(hThread); 
             } 
          } 
          CloseHandle(hSnapshot); 
       } 
    }
    Ce code fonctionne mais présente plusieurs risques, rien n'empêche la création ou destruction de thread pendant la suspension avec tout ce qui en découle.
    "The quieter you become, the more you are able to hear"
    "Plus vous êtes silencieux, plus vous êtes capable d'entendre"

  18. #18
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 15
    Points : 16
    Points
    16
    Par défaut
    re,
    je pense k je me suis mal exprimé, en fait on n'a pas besoin d'enregistrer le process.
    on veut juste le mettre en pause et le relancer à partir d'un autre processus et comme les API de windows c'est trés large je me demandais si kelkun connaîtra une ki pourrai m'aider à réaliser un tel programme et merci

  19. #19
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 15
    Points : 16
    Points
    16
    Par défaut
    re et ouuuups,
    j'avais pas vu la 2ème page.j précise k je porte des lunettes
    et merci je vais creuser de c côté

  20. #20
    Membre à l'essai
    Étudiant
    Inscrit en
    Décembre 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 31

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2007
    Messages : 21
    Points : 20
    Points
    20
    Par défaut
    Je te remercie . C'est vraiment trés interessant. Mais je me demmande si tu es d'accord de nous présenter un tel sujet mais avec delphi.

Discussions similaires

  1. Réponses: 29
    Dernier message: 14/01/2013, 11h40
  2. Initiation à la programmation avec l'API Windows
    Par PIC16F877A dans le forum Débuter
    Réponses: 5
    Dernier message: 27/02/2010, 12h40
  3. Réponses: 2
    Dernier message: 24/12/2005, 12h37
  4. Tutorial d'initiation a la programmation avec l'API Windows
    Par mcdonald dans le forum Autres éditeurs
    Réponses: 3
    Dernier message: 16/09/2005, 18h20
  5. programmation d'API windows et multithreading
    Par Mastero dans le forum Windows
    Réponses: 8
    Dernier message: 08/03/2005, 00h00

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