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 :

RAD génération source API ?


Sujet :

C

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 309
    Par défaut RAD génération source API ?
    Bonjour à tous

    Débutant en C, depuis plusieurs jours, je fais des essais sur CodeBlock, Dev-C++ pour voir le fonctionnement des RAD en C
    Tout ce que j'ai trouvé pour l'instant ce sont des RAD qui font appel à des bibliotheques (WxSmith ou autres) ou bien à des ressources
    Je voudrais savoir si vous auriez eu connaissance d'un RAD qui génére la GUI uniquement en API ??

    Je vous remercie et vous souhaite une bonne journée

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 401
    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 401
    Par défaut
    "API" seul ne veut rien dire.

    Parles-tu de l'API Windows? Tu cherches un RAD capable de générer du code C utilisant l'API Windows sans autre bibliothèque?
    Je ne suis pas sûr que ça existe.
    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.

  3. #3
    Membre éprouvé
    Avatar de Luke spywoker
    Homme Profil pro
    Etudiant informatique autodidacte
    Inscrit en
    Juin 2010
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant informatique autodidacte

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 077
    Par défaut
    Bonjours andrebernard,

    il faut que tu soit plus explicite si tu veut avoir des réponses pertinentes:

    un RAD je ne sais pas ce que c'est (malgré que je sache ce qu'est code::block et co), il faut expliquer les acronymes (Séparé les lettres par des points permet de voir que c'est un acronyme.) que tu utilise et même les termes si tu le juge nécessaire, ce qui l'est souvent, car l'informatique est un domaine vaste et tout le monde ne connais pas tout.

    Il faut soigner la présentation du sujet de ton post, décoration de texte sont la bienvenue, codes source, liens vers tel ou tel terme, a l'appuie etc...

    Je ne vœux pas te faire la morale, seulement t'aider a ma manière, mais personnellement J.R.P (J'ai Rien Piger) a ton poste.

    Au plus de gens comprennent a quoi tu fait référence, au plus tu aura de chances qu'ont puissent t'aider.

    Sinon bonne année a toi et bonne continuation a toi en C.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 309
    Par défaut
    Bonjour à tous les deux
    Et tout d'abord merci de vos réponses et de votre interêt à ma question

    MEDINOC
    Tu as tout à fait compris la question, c'est exactement le sens de ma demande.
    Je m'excuse pour l'imprécision au sujet de windows, n'utilisant que lui, j'en oublie le grand LINUX ou même IOS
    Je me doutais un peu de la réponse, étant donné que j'ai cru comprendre en regardant VC++ 2006 que la création d'interface graphique passait déjà à l'époque par des ressources.
    J'aime beaucoup les API, c'est pourquoi je cherchais l'équivalent en n'utilisant que ces dernières.
    C'est bizarre que personne n'est pensé à coder ce genre d'application ?
    Peut être que dans le monde du C, programmer uniquement en ligne de code n'est pas habituel.
    Je ne sais pas car je ne connais pas les "traditions" de ce super langage.

    Luke spywoker
    un RAD je ne sais pas ce que c'est
    Je suis très étonné de ta réponse
    Débutant en C, mais 30 années dans certains autres langages, je ne pensais pas qu'un programmeur ne puisse pas savoir ce qu'est un RAD
    Un peu comme si tu m'avais dit que tu ne savais pas ce qu'est un IDE (Integrated Development Environment)..
    Tu doit donc être un de ces super programmeurs, qui codent tout "à la mano" en txt avec un bloc note, pour compiler tes créations en ligne de code
    J'ai déjà croisé des maîtres de la console, qui ne savaient même pas créer une fenêtre Windows, c'est pourquoi je sais que des gens comme toi existent, bien que cela reste assez admirable et très surprenant, pour ma part bien sûr.

    car l'informatique est un domaine vaste et tout le monde ne connais pas tout.
    Tu as raison, ne connaissant pas ce langage, j'en oublie aussi l'étendue de son empire

    (Séparé les lettres par des points permet de voir que c'est un acronyme.)
    Tu as donc deviné que c’était bien des acronymes, et je pense que dans une société ou ceux ci règnent de plus en plus, par snobisme parfois , mais aussi par nécessité, mais je pensais naïvement qu'il n'est plus besoin à notre époque de mettre des points, pour deviner ce de quoi nous parlons.
    Je n'ai pas souvenir d'avoir vu écris nulle part depuis que je croise l'USB (Universal Serial Bus) sur les PC (Personal Computer), que je les utilise chez moi, dans les TCL (Transports Communs Lyonnais), dans les trains de la SNCF (Société national des Chemins de Fer) ou tout autre autre lieu, ces fameux point que tu me dit être OBLIGATOIRES à la compréhension de la dite abréviation ?
    En outre, tu constateras que ces fameux points n'apparaissent pas non plus OBLIGATOIREMENT sur le NET
    http://fr.wikipedia.org/wiki/D%C3%A9...27applications
    Je terminerais sur le sujet, par dire qu'il ne faut pas non plus confondre les acronymes, qui font partie intégrante de la langue française, depuis la nuit des temps, que ce soit avant ou après JC (Jesus Chist) et les élucubrations que pratiquent les jeunes et maintenant les moins jeunes constituées de suites de consonnes imprononçables qu'ils ont coutume d'appeler pompeusement le "Langage" SMS (Short Message Service)

    En outres, je reconnais que venant des sous langages haut niveau BASIC (Beginner All Purpose Symbolic Instruction Code), un RAD (Rapid Application Developpement) est un outil des plus communs, ce qui n'est pas le cas du C ou de l'ASM (Assembleur) qui eux sont LES langages de programmations, le Frigidaire de l'armoire frigorifique, Vélux de la fenêtre de toit, Rolls de la voiture, etc..bref LA référence, la base de la programmation.
    Pour moi le C est un rêve, un nirvana, que je pense pouvoir espérer toucher du bout du doigt, maintenant qu'au bout de X années de prog j'ai un peu manipulé, les UDT (User Defined Type), Pointeurs, CallBack, Thread et autres "joyeuseries" de la programmation bas niveau

    J.R.P (J'ai Rien Piger)
    Les acronymes que j'ai utilisé sont tous officiels et font partie du monde de la prog.
    Je ne me serais jamais permis d'utiliser une abréviation "SMSIQUE" qui aurait, de par mon point de vue, manqué de respect à ce forum

    Au plus de gens comprennent a quoi tu fait référence, au plus tu aura de chances qu'ont puissent t'aider.
    Tu as aussi raison, mais là encore un grave dilmene se pose, continuellement sur des forums des autres langages, on a coutume de me traiter de "bavard", de créateur de "pavé", ou autres gentillesse qui ne sont pas si méchantes que cela, mais qui vous font sentir quand même que je gonfle un peu les gens avec mes grands textes
    Alors, connaissant le serieux des forums C, et respectant et admirant ceux qui le pratiquent couramment comme un PADAWAN (C'est pas un acronyme hein !!! ) admire son MAÎTRE, je me suis dit, je vais faire court et employer des mots de professionnels de la programmation, afin de ne pas commencer par les gonfler au premier message...mission accomplie

    Sinon bonne année a toi et bonne continuation a toi en C.
    Je te remercie beaucoup et je te la souhaite encore meilleure que la mienne
    Déjà fier d'avoir pu parler à deux de mes idoles, cette année commence bien
    Quand à ma continuation...cela fait plusieurs fois que j'essai et abandonne le C faute à sa difficulté dans la gestion des fenêtres et des pointeurs, mais je pense cette fois avoir assez de bille pour me relancer à nouveau.
    J'en rêve donc un jour ou l'autre j'atteindrais mon but, c'est à dire pouvoir coder une petite GUI (Graphique User Interface) toute en C
    C'est pourquoi, je m'étais dit que si un MAITRE avait eu cette idée avant moi...et bien il m'aurait grandement facilité la tâche
    Alors plutôt que de parler de continuation...je vais parler de "Commenciation" (Ni acronyme, ni français !!! )

    A VOUS DEUX
    Merci à vous, les autres membres et tous les utilisateurs du C, de continuer à l'utiliser.
    Personnellement attaché aux choses efficaces, de base et sans fioritures, cela me fait bondir d'entendre que le C est un vieux langage, has-been, et que l'avenir est la POO (Programmation orientée Objet) ou le monde du WEB
    C'est de mon avis faire offense aux valeurs qui ont créé la programmation et surtout oublier que le C est d'après TYOBE un des langages le plus utilisé du monde :
    http://www.tiobe.com/index.php/conte...pci/index.html

    Mais aussi oublier que sans le C et l'ASM, grand nombre d'OS (Operating System) et ces fameux "supers" nouveaux langages n'auraient jamais vu le jour.
    De la à dire qu'ils ne sont que des "surcouches" pour personnes n'ayant pas le temps, les capacités (comme moi), ou la passion de la programmation, je n'en suis pas loin ...

    Au plaisir de vous relire

  5. #5
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 401
    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 401
    Par défaut
    Les ressources font partie du SDK standard de Windows et sont utilisables depuis un code C, tu sais.
    Mais les ressources DIALOG sont juste un moyen rapide de créer une fenêtre et ses contrôles; ce n'est pas vraiment du RAD quand on voit le code qu'on doit écrire derrière (la DialogProc), même si ça reste plus simple que tout faire soi-même (créer manuellement les contrôles).
    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.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 309
    Par défaut
    Les ressources font partie du SDK standard de Windows et sont utilisables depuis un code C, tu sais.
    Ahh !! d'accord, je me demandais d'ou elles venaient

    ce n'est pas vraiment du RAD quand on voit le code qu'on doit écrire derrière (la DialogProc),
    Je pense que par DialogProc, tu dois parler des événements gérés dans la callback comme un WM_SIZE, par exemple au redimensionnement de la fenêtre ?

    Je me suis mal expliqué, c'est vrai que j'ai un peu galvaudé le terme de RAD.
    En fait, je ne cherche pas une application qui gère les événements comme dans VB, mais juste une application qui permet de tracer les fenetres et autres controles, les positionner, puis cliquer sur un bouton et générer un code C pure, simple avec appel d'API
    CreateWindow()
    DestroyWindow()
    SendMessage()
    ShowWindow()
    UpdateWindow()
    MessageBox()
    etc ..

    Pour ce qui est des événements, j'ai l'habitude de les gérer moi même dans la callBack

    J'ai fait quelques essais, je m'excuse pour vos yeux, c'est surement trés mal codé , mais ça marche et j'en suis le premier surpris et content
    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
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    HWND OpenWindow(LPSTR Titre)
    {
     
        HWND HwndFenetre;
     
        WNDCLASS wc;
        wc.cbClsExtra = 0;
        wc.cbWndExtra = 0;
        wc.hInstance = g_hInst;
        wc.hbrBackground = (HBRUSH)(COLOR_WINDOW);
        wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
        wc.hCursor = LoadCursor(NULL,IDC_ARROW);
        wc.lpszClassName = "Fenetre";
        wc.lpszMenuName = NULL;
        wc.style = CS_HREDRAW|CS_VREDRAW;
        wc.lpfnWndProc = (WNDPROC) CallBackWindows;
        RegisterClass(&wc);
     
        HwndFenetre = CreateWindow("Fenetre", Titre, WS_OVERLAPPEDWINDOW, 0, 0, 640, 480, 0, 0, g_hInst, 0);
        ShowWindow(HwndFenetre, SW_SHOW);
        UpdateWindow(HwndFenetre);
     
        return HwndFenetre;
     
    }
     
    // using _stdcall the winmain entry
    int APIENTRY WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR line, int CmdShow)
    {
        g_hInst = hInst;
        MSG msg;
     
        FenetrePrincipale = OpenWindow("Coucou");
        FenetreSecondaire = OpenWindow("Coucou2");
     
        while(GetMessage(&msg, 0, 0, 0))
        {
            if(msg.message == WM_CLOSE || msg.wParam == WM_CLOSE || msg.lParam == WM_CLOSE)
            {
                MessageBox(0, "Coucou", "Je me ferme",1);
            }
     
           TranslateMessage(&msg);
           DispatchMessage(&msg);
        }
     
        return msg.wParam;
    }
     
    // function def's?
    LRESULT APIENTRY CallBackWindows(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
    {
        switch(msg)
        {
           case WM_CLOSE:
     
               MessageBox(0, "Hello", "Welcome Message",1);
               SendMessage(hwnd, WM_DESTROY, 0, 0);
               break;
     
            case WM_DESTROY:
     
                DestroyWindow(hwnd);
     
                if(hwnd == FenetrePrincipale)
                {
                    PostQuitMessage(0);// destroy code out of memory
                }
     
                break;
     
            default:
     
            return DefWindowProc(hwnd, msg, wParam, lParam);
        }
     
        return 0;
    }
    Ca marche sauf pour essayer de detecter l'evenement dans la boucle while(GetMessage(&msg, 0, 0, 0))
    J'ai essayé de capter l'evenement et cela ne marche pas, mais peut être que l'on a pas le droit de le faire en C et que le passage par la callback est obligatoire
    if(msg.message == WM_CLOSE || msg.wParam == WM_CLOSE || msg.lParam == WM_CLOSE)

  7. #7
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 401
    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 401
    Par défaut
    Première chose à savoir: On n'envoie jamais WM_DESTROY à une fenêtre.
    WM_DESTROY ne ferme pas une fenêtre, ça lui fait simplement croire qu'elle est en train de se fermer.

    Ensuite, généralement on n'a pas besoin de traiter WM_CLOSE: Le traitement par défaut fait par DefWindowProc() provoque la fermeture de la fenêtre.
    On n'appelle pas DestroyWindow() dans le traitement de WM_DESTROY, puisqu'on reçoit un WM_DESTROY pendant la destruction de la fenêtre.
    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.

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 309
    Par défaut
    Merci beaucoup de ton explication.
    Je me suis fait avoir, car à l'origine le code n'avait qu'une seule fenêtre, jai donc doublé la création de la fenêtre.
    Mais le problème, c'est que les 2 fenêtres se fermaient que j'en ferme une ou l'autre.
    J'ai déjà compris que la fonction postquit voulait dire de fermer le programme, le END du basic.(enfin j'espère. .)
    Mais après je cherchais un moyen de reconnaître sur quelle croix j'avais cliqué afin de fermer la bonne fenêtre.
    C'est pourquoi j'ai trouvé qu'en cliquant sur une croix on reçoit le message WM_CLOSE dans la callback, alors je me suis dit qu'il suffisait ensuite de tester le hwnd pour fermer la bonne fenêtre.
    Pourquoi faire simple quand on peut faire compliqué

  9. #9
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 401
    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 401
    Par défaut
    PostQuitMessage() sert à faire en sorte que GetMessage() retourne zéro, ce qui provoque la sortie de la boucle, la fin du programme et la fermeture brutale (sans callback) de toutes ses fenêtres encore ouvertes, tous ses handles, etc.

    Si tu as plusieurs fenêtres, tu dois te faire un compteur de fenêtres ouvertes, le décrémenter dans le case WM_DESTROY, et appeler PostQuitMessage() quand il atteint zéro.
    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.

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 309
    Par défaut
    D'accord !!!! Bien compris, je ferais ça dorénavant, merci beaucoup
    C'est vrai on trouve par ci par la des codes pour une fenêtre, et parfois un controle dedans (par miracle) mais je n'en ai pas trouvé pour plusieurs..alors je me suis lancé
    Ou alors on trouve, des codes avec "WhatMilles" lignes pleins de controles, des .h et .c comme si il en pleuvait et là...c'est l'overdose

    Donc en C pas de END, faut le faire à la mano, comme un peu tout apparemment mais ça je le savais déjà un peu, c'est d'ailleurs ce qui rebute les débutants de la prog qui se rabattent sur le BASIC (Je te passe la signification de l'acronyme )

    J'aurais une question aussi pour bien comprendre, la différence entre la boucle while(GetMessage(&msg, 0, 0, 0)) et la CallBack
    Apparemment tous les messages ne passent pas dans les deux...ou me trompe_je ?
    J'ai vu passer un code ou le programmeur gérait le message dans la boucle GetMessage{} au lieu de la CallBack
    Peut on faire indifféremment, selon notre choix, ou bien certains cas l'oblige, ou bien il ne faut pas le faire du tout ?

  11. #11
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 401
    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 401
    Par défaut
    Alors:
    • Certains messages, les messages postés vers une fenêtre, sont visibles à la fois de la boucle d'appel à GetMessage() et de la callback: Ils sont retournés par GetMessage() et DispatchMessage() appelle la callback.
    • D'autres messages, les messages envoyés vers une fenêtre, ne sont visibles que de la callback, car GetMessage() les lui envoie directement sans retourner.
    • Les plus rares, les messages postés vers un thread (avec PostThreadMessage()), ne sont visibles que dans la boucle, vu qu'ils ne sont pas associés à une fenêtre. WM_QUIT est un de ces messages, puisque c'est PostQuitMessage() qui le poste.
    • Il n'est pas possible d'envoyer un message vers un thread plutôt qu'une fenêtre.
    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.

  12. #12
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 309
    Par défaut
    Tu m’enlèves un gros point d’interrogation de la tête...pour ça aussi...hop affaire classée
    Donc en fin de compte pour savoir si les messages apparaissent dans la boucle GetMessage() il suffit de le tester, si il n’apparaît pas, c'est que c'est normal ...cool !!!
    C'est dans des moments comme ça que je me marierais avec la personne qui a créé les forums
    Parce que j'ai eu beau lire des tonnes de choses, parfois en anglais (Aie)...souvent en anglais (Aie..aie aie ...) mais les CAIDS de la prog qui font pourtant des supers TUTOS parfois, ne pensent pas à expliquer ce genre de chose et tu restes avec ton mal de tête et tes questions

    J'ai honte d'abuser de ta gentillesse, mais une autre petite question, que je me posais est il nécessaire de dé-enregistrer la classe de la fenêtre au plus vite, ou bien on peut la laisser trainer et le faire avant la fin ou au pire le laisser faire tout seul au PostQuitMessage()

  13. #13
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 401
    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 401
    Par défaut
    Il est possible de désenregistrer les classes de fenêtre, mais généralement on ne se fatigue pas à le faire, vu que ça n'est enregistré que pour le processus qui le fait.
    D'ailleurs, des fonctions comme InitCommonControlsEx() n'ont pas de fonction inverse; les Common Controls restent enregistrés jusqu'à la fin du processus.

    PS: À ma connaissance, tu n'as pas à gérer toi-même la destruction des contrôles créés dans ta fenêtre: Toute fenêtre fille est automatiquement détruite lors de la destruction de la fenêtre parent, et les contrôles sont généralement créés en tant que fenêtres filles.
    • Lorsque le parent reçoit le message WM_DESTROY, les fenêtres filles sont toujours là.
    • Lorsque le parent reçoit le message WM_NCDESTROY, les fenêtres filles ont déjà été détruites.

    Attention, à ma connaissance ce n'est pas le cas des fenêtres "owned", seulement des fenêtres filles.
    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.

  14. #14
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 309
    Par défaut
    Tu va rire...j'ai plus de question .... pour l'instant

    Vraiment merci pour tout..MEDINOC
    C'est grâce à des gens comme toi, que les gens comme moi, arrivent à toucher du bout des doigts leur rêve
    Mais aussi, peut être grâce à des gens comme toi, que ce formidable langage que tout le monde veut enterrer, trouvera encore des "petits jeunes" pour continuer à le faire vivre au milieu de ce fatra de nouveaux langages en perpétuel mouvement
    Moi je reste persuadé que le proverbe de la vieille gamelle et la bonne soupe est aussi de mise dans la programmation, le tout est d'être courageux

    Longue vie au C

    Au plaisir de te relire, à la corvée de me répondre peut-être un autre jour
    Je te souhaite une excellente journée...

  15. #15
    Membre éprouvé
    Avatar de Luke spywoker
    Homme Profil pro
    Etudiant informatique autodidacte
    Inscrit en
    Juin 2010
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant informatique autodidacte

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 077
    Par défaut
    C'est grâce à des gens comme toi, que les gens comme moi, arrivent à toucher du bout des doigts leur rêve
    Mais aussi, peut être grâce à des gens comme toi, que ce formidable langage que tout le monde veut enterrer, trouvera encore des "petits jeunes" pour continuer à le faire vivre au milieu de ce fatra de nouveaux langages en perpétuel mouvement
    Moi je reste persuadé que le proverbe de la vieille gamelle et la bonne soupe est aussi de mise dans la programmation, le tout est d'être courageux

    Longue vie au C
    Simplement pour dire, je n'en suis qu'a 4 années et demie de programmation, dont les deux dernières en C.
    Je n'écrit plus que des programmes en C pour l'instant, ayant commencer avec du python, simplement pour la difficultés supplémentaire et la façon de programmer:
    En python tout les chemins mènent a Rome mais en C il faut constamment chercher le bon chemin a défaut de se retrouver dans le pétrins, disons que ça me fait les pieds et j'y prends mon pied.
    Par contre la Windaube je n'y comprend rien et je ne veut plus en entendre parler.
    Car vous parler de GUI, mais c'est un véritable cauchemar pour le développeur C, que je suis, de porter son application GTK+3 vers Windows, si bien que j'ai abandonner...

    Malgré que je n'ai plus 20 ans et une maigre expérience dans le domaine la relève est là et le C vivra, voyez ce dont est capable Kannagi (par exemple) dans le domaine des jeux vidéo et les autres...

  16. #16
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 309
    Par défaut
    Si seulement j'étais capable d'être sous LINUX...y a longtemps que j'aurais quitté WINDAUBE...
    Je fais à ma manière de la résistance. .
    Je considère que depuis XP pour un utilisateur d'utilitaires que je suis (je ne joue jamais) rien n'a été inventé.
    W2000 était un système assez fiable basé sur NT, il lui manquait l' USB.
    Mais après. ..tout n'est que commercial, pour un utilisateur normal.
    Forcer les gens à possèder un OS de x giga pour lire un Doc, html, txt, pdf, etc...leur mail, quelques photos, c'est de l'arnaque.
    Je garde donc mon XP contre vents er marées..

    Pour linux, si seulement les geeks de l'époque, avaient appliqué la ruse du cheval de Troie, c'est à dire combattre l'ennemi de l'intérieur avec ses propres armes, au lieu de créer un système à leur image, extrêmement complexe, sans penser que l'utilisateur lambda n'a pas leur connaissance. .on en serait pas là.

    Je salue les distrib comme mint ou autre qui ont eu l'intelligence de copier le comportement de windows, simplifier les installes, etc...
    Mais avant que Windows mette un genou à terre, je mangerais les pissenlits par la racine.

    On voit bien que Bilou n'est pas tout puissant, puisque linux est passé maître dans le domaine des téléphones, et tablettes, tout simplement parce qu'ils ont su se mettre à la portée du simple utilisateur pour pas un rond et jamais Windows n'egalera
    Linux

    Maintenant, je fais des fenêtres sur Windows pour des raisons de communauté et de connaissances.
    Pas par choix...et je n'ai jamais eu de problème pour faire des exe qui marche sur Windows
    C'est bien le seul problème que je n'ai pas d'ailleurs

    Et je suis content de voir que le C perdure malgré ce qu'en disent certains. ..
    Merci de ta reponse et ton lien

  17. #17
    Membre éprouvé
    Avatar de Luke spywoker
    Homme Profil pro
    Etudiant informatique autodidacte
    Inscrit en
    Juin 2010
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant informatique autodidacte

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 077
    Par défaut
    Personnellement, c'est le destin qui m'a poussé a utiliser Linux, POUR DÉVELOPPER (comme programmeur, autodidacte a titre de hobby), dès mes débuts et je pense avoir été bien conseiller.

    Après aucun système n'est parfait et l'un a ses avantages et ses inconvénients.

    Mais rien que le faîte qu'on mette a disposition un système GRATUITEMENT, simplement pour vouloir prouver qu'on est capable de le faire et faire de son mieux pour les autres sans demander un retour, simplement pour permettre aux gens d'avoir une alternative, qu'ils peuvent essayer sans avoir a (pré)installer le système, de part la méthode du live CD, me suffit pour me convaincre d'essayer.

    Je connaît RELATIVEMENT bien (4 ans et ÷ 2) mon OS Linux et j'en suis content, il est certains que si j'avais passer tout ce temps sur Windows je ne dirai pas la même chose.

    Mais franchement pour un développeur C avoir un dossier situer sous /usr/include ou toutes les libraries sont situés, et puis si l'on doit installer une libraries qui n'est pas dans les dépôts ont sais ou la mettre a l'opposé de la chaotique Windows:

    Un exemple:
    il faut extraire le zip GTK+3.bundle puis être censé exécuter des commandes dans l'interpréteur de commandes Windows qui ne fonctionne pas nativement (J'ai réussis a les exécutés grâce a cygwin comme dit dans mon poste) puis passer une demie journée a ajouter les PATH des fichiers que le fichier gtk.h inclus au PATH du compilateur.
    Puis vient le calvaire du copier-coller du résultat de la commande $(pkg-config --libs --cflags gtk+-3.0) dans les options du linker de code::blocks car la substitution de commande ne semble pas marcher.
    En plus code::blocks recommande l'installation de mingw (Une adaptation de GCC (GNU C Compiler) pour Windows) comme compilateur.

    Bref on y est ça devrai marcher, le compilateur ne se plaint plus de rien après avoir compiler le fichier de test suivant avec succès:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    #include <stdio.h>
    #include "gtk/gtk.h"
     
    int main(int argc, char *argv[]) { 
     
      fprintf(stdout,"It work's\n") ;
     
      return 0 ;
    }
    Puis vient l'essaie d'utilisation d'une fonction gtk_*, g_* ou autre: le compilateur se plaint de pas trouver les fonctions et je dois payer pour être torturé par un système auquel j'aimerai apporter une pierre en portant mon programme vers celui-ci ???

    Et personne ne répond a mon poste sur le forum.

    PS: Impossible d'installer Visual Studio 2010, l'installateur s'exécute mais après installation pas de Visual Studio, je suppose qu'il faut payer pour installer la version gratuite de cette IDE, l'utilisation est gratuite mais peut-être pas l'installation ???

    Le problème vient sûrement de mon ignorance de Windows et des méandres du C ou Bilou essayerai-t-il de me duper ?

  18. #18
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 401
    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 401
    Par défaut
    Euh, j'ai installé Visual C++ 2010 Express et Visual C# 2010 Express sans le moindre problème sur mon ancien PC (Windows Vista), et Visual Studio Express 2013 For Windows Desktop sans problème non plus sur le nouveau (Windows 8.1)...
    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.

  19. #19
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 309
    Par défaut
    Mais rien que le faîte qu'on mette a disposition un système GRATUITEMENT, simplement pour vouloir prouver qu'on est capable de le faire et faire de son mieux pour les autres sans demander un retour, simplement pour permettre aux gens d'avoir une alternative, qu'ils peuvent essayer sans avoir a (pré)installer le système, de part la méthode du live CD, me suffit pour me convaincre d'essayer.
    Tout à fait d'accord avec toi, mais seulement voila..
    Mes mains disent bravo...ma tête dit aie aie aie !!!

    Il y a longtemps, mais moi aussi j'avais aussi installé VS express sans probléme.
    Peut être aurais tu véxé Bilou ?

    Pour le reste, j'aurais aimé t'aider, mais ça dépasse de loin mes capacités

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

Discussions similaires

  1. Erreur génération classe API jaxb
    Par bdptaki dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 01/05/2011, 00h36
  2. Réponses: 3
    Dernier message: 13/01/2010, 15h28
  3. [Sources] API shellExecute, Ouverture conditionelle d'un fichier/dossier
    Par SfJ5Rpw8 dans le forum Vos contributions VB6
    Réponses: 3
    Dernier message: 17/09/2006, 16h16
  4. [Recherche]une API pour colorer le code source
    Par kedare dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 31/07/2006, 09h48
  5. [JAR]Obtenir les sources de l'api Java
    Par compu dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 18/11/2005, 02h53

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