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 :

Gestion des evenements et callback


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 Gestion des evenements et callback
    Bonjour à tous

    Lors d'une de mes discussions, il me semble qu'un membre m'avait dit que la gestion des evenements d'une fenetre et de ses controles ne passait pas obligatoirement par une callback

    J'ai fait des recherches mais a part un code de Hook de microsoft, j'ai pas trouvé grand chose
    Et encore je ne sais meme pas si cela marche pour le C
    http://msdn.microsoft.com/fr-fr/libr...(v=VS.71).aspx

    J'ai pensé à un SWITCH dans la boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    While (GetMessage(&msg, NULL, 0, 0))
        {
           TranslateMessage(&msg);
           DispatchMessage(&msg);
        }
    Mais avant de faire des betises ....
    Pourriez vous me guider sur les divers moyens de receptionner les evenements ???

    Merci et bonne journée

  2. #2
    Membre Expert
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Par défaut
    Qu'as-tu contre les callbacks ? Ça reste une solution correcte dans la majorité des cas. Car au final insérer ton switch dans la boucle d'interception d'événements revient en théorie à le mettre dans le callback et lier les deux, avec le défaut principal de risquer l'engorgement (trop d'événements arrivant d'un coup) et de rendre le code peu lisible.

    Ensuite, le principe du hook est celui du callback, mais il est en général pas approprié (on l'utilise lorsque des événements dont on est pas le propriétaire nous intéresse).

    Cordialement,

  3. #3
    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
    Oh je n'ai pas réellement de dent parmi mes 32 contre les callbacks

    Je trouve que cela fait une fonction de plus a gérer dans le code
    Je suis debutant et je ne connais pas les tenants et aboutissants du langage, c'est juste que je voulais savoir, si il etait possible de ne pas les utiliser ??

    J'avais juste pris l'habitude de ne les utiliser que dans certains cas, ou justement je voulais de la rapidité ou intercepter un message

    Mais pour gérer le retour d'un clic, que un bouton, je trouve que ça fait beaucoup de code.

    C'est pour cette raison que je voulais savoir si cela ne posait pas de problème, si je mettais mon switch directement dans la boucle d'interception d'événements, et je supprimais la callback, dans le cas ou je n'ai que quelques événements simples à surveiller

  4. #4
    Membre Expert
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Par défaut
    Tu peux toujours essayer pour voir ce que ça fait (jamais tenté de mon coté), mais j'ai bien peur que tu ne compliques le code sans rien apporter en retour.

    Sinon un bon code est un code divisé et subdivisé en fonctions (ou autres entités de même genre) tel qu'une personne découvrant le code comprenne ce qu'il fait. Ceci dit, que penses tu de ces deux codes :
    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
    while(un_evenement_a_gerer()) {
       switch(premier_evenement()) {
       case TRUCBIDUL1:
          // 50 lignes de code pas trop claires
          break;
       case TRUCBIDUL2:
          // 20 lignes obscures
          break;
       case TRUCBIDULE3:
          // 30 lignes incompréhensibles
          break;
       default:
          // blabla
       }
    }
    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
    while(un_evenement_a_gerer()) {
       switch(premier_evenement()) {
       case TRUCBIDUL1:
          onClic()
          break;
       case TRUCBIDUL2:
          onDoubleClic()
          break;
       case TRUCBIDULE3:
          onRightClic()
          break;
       default:
          // blabla
       }
    }
     
    void onClic() {
       // 50 lignes de code pas trop claires
    }
    void onDoubleClic() {
       // 20 lignes obscures
    }
    void onRightClic() {
       // 30 lignes incompréhensibles
    }

  5. #5
    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
    Oui oui...tu as mille fois raison...j'ai du mal m'exprimer

    Je ne veut pas du tout supprimer les fonctions, tres loin de la et bien au contraire.
    Justement j'ai appris bien trop tard ce qu'etait une fonction et avant je codais en QBasic sans aucune fonction en repetant tout et a chaque fois
    Des milliers de lignes pour un programme simple

    Maintenant grace a des gens comme toi que j'ai rencontré dans un autre langage, j'ai appris...(Du moin je l'espere) le B-a-ba de la programmation.
    Et ce que tu viens de me montrer est evidemment la meilleure methode.

    Non ma seule question est de ne pas mettre les evenements dans la callback si l'on est pas obligé parfois peut aussi soulager un code.

    Imagine que tu ai une fenetre avec quelques boutons et un controle String
    Le nombre d'evenements pouvant se produire est extremement reduit.

    Je cherche depuis hier un code ou la gestion de l'evenement n'est pas faite dans une callback et je n'en trouve pas

    Alors ma question est :
    Est il possible si l'on a que quelques evenements de les mettre dans la boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    while (GetMessage(&msg, NULL, 0, 0))
        {
           TranslateMessage(&msg);
           DispatchMessage(&msg);
     }
    Ou bien il ne faut jamais faire cela en C ???

    Regarde deux exemples à ton tour
    Le premier long pour pas grand chose (Enfin a mon avis et si encore une fois...c'est pas obligé )
    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
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    #include <windows.h>
     
    LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
        static HINSTANCE hInstance;
     
        switch (message)
        {
        case WM_CREATE:
     
            hInstance = ((LPCREATESTRUCT)lParam)->hInstance;
            CreateWindow("BUTTON", "OK", WS_CHILD | WS_VISIBLE, 0, 0, 100,24, hwnd, (HMENU)1, hInstance, NULL);
     
            break;
     
        case WM_COMMAND:
            /***************************************************\
            * LOWORD(wParam) = ID du contrôle ou du menu        *
            * HIWORD(wParam) = Raison du message (notification) *
            \***************************************************/
     
            switch(LOWORD(wParam))
            {
     
            case 1:
     
                switch(HIWORD(wParam))
                {
     
                case BN_CLICKED:
                    Beep(1000, 100);
                    break;
     
                default:
                    break;
                }
     
                break;
     
            case 2:
     
                switch(HIWORD(wParam))
                {
     
                case BN_CLICKED:
     
                    Beep(100, 100);
                    break;
     
                default:
     
                    break;
     
                }
     
                break; 
     
            default:
     
                break;
     
            }
     
            break; /* case WM_COMMAND */
     
        case WM_DESTROY:
     
            PostQuitMessage(0);
            break;
     
        default:
     
            return DefWindowProc(hwnd, message, wParam, lParam);
     
        }
     
        return 0;
     
    }
     
    void Bip(/*paramètres ou non*/)
    {
     Beep(100, 100);
    }
     
    int Principal(HINSTANCE hInstance, int nCmdShow)
    {
     
        HWND hWnd;
        MSG msg;
        HWND hWndB1;
        HWND hWndB2;
     
        hWnd = CreateWindow("Classe 1", "Notre première fenêtre", WS_OVERLAPPEDWINDOW,100, 100, 600, 300, NULL,NULL,hInstance,NULL);
        hWndB1 = CreateWindow("BUTTON", "OK1", WS_CHILD | WS_VISIBLE, 100,100, 100,24, hWnd, (HMENU)1, hInstance, NULL);
        hWndB2 = CreateWindow("BUTTON", "OK2", WS_CHILD | WS_VISIBLE, 200,200, 100,24, hWnd, (HMENU)2, hInstance, NULL);
        ShowWindow(hWnd, nCmdShow);
       Bip();
     
    	while (GetMessage(&msg, NULL, 0, 0))
        {
           TranslateMessage(&msg);
           DispatchMessage(&msg);
     
    	 }
     
        return (int)msg.wParam;
     
    }
     
    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
    {
     
     
        WNDCLASS wc;
        wc.cbClsExtra     = 0;
        wc.cbWndExtra     = 0;
        wc.hbrBackground  = (HBRUSH)(COLOR_WINDOW + 1);
        wc.hCursor        = LoadCursor(NULL, IDC_ARROW);
        wc.hIcon          = LoadIcon(NULL, IDI_APPLICATION);
        wc.hInstance      = hInstance;
        wc.lpfnWndProc    = WndProc;
        wc.lpszClassName  = "Classe 1";
        wc.lpszMenuName   = NULL;
        wc.style          = CS_HREDRAW | CS_VREDRAW;
     
        RegisterClass(&wc);
     
        return Principal(hInstance, nCmdShow);
     
    }
    Le second sans callback (Si c'est possible...)
    C'est du pseudo code...
    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
    #include <windows.h>
     
    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
    {
        WNDCLASS wc;
        wc.cbClsExtra     = 0;
        wc.cbWndExtra     = 0;
        wc.hbrBackground  = (HBRUSH)(COLOR_WINDOW + 1);
        wc.hCursor        = LoadCursor(NULL, IDC_ARROW);
        wc.hIcon          = LoadIcon(NULL, IDI_APPLICATION);
        wc.hInstance      = hInstance;
        wc.lpfnWndProc    = WndProc;
        wc.lpszClassName  = "Classe 1";
        wc.lpszMenuName   = NULL;
        wc.style          = CS_HREDRAW | CS_VREDRAW;
     
        RegisterClass(&wc);
     
        return Principal(hInstance, nCmdShow);
    }
     
    void Bouton1()
    {
     // 200 lignes de code
    }
     
    void Bouton2()
    {
     // 200 lignes de code
    }
     
    int Principal(HINSTANCE hInstance, int nCmdShow)
    {
        HWND hWnd;
        MSG msg;
        HWND hWndB1;
        HWND hWndB2;
     
        hWnd = CreateWindow("Classe 1", "Notre première fenêtre", WS_OVERLAPPEDWINDOW,100, 100, 600, 300, NULL,NULL,hInstance,NULL);
        hWndB1 = CreateWindow("BUTTON", "OK1", WS_CHILD | WS_VISIBLE, 100,100, 100,24, hWnd, (HMENU)1, hInstance, NULL);
        hWndB2 = CreateWindow("BUTTON", "OK2", WS_CHILD | WS_VISIBLE, 200,200, 100,24, hWnd, (HMENU)2, hInstance, NULL);
        ShowWindow(hWnd, nCmdShow);
     
    	while (GetMessage(&msg, NULL, 0, 0))
        {
     
    	  switch msg.hwnd // Je recupere le message, je ne sait encore pas trop comment
    	  {
     
    	   case hWndB1 // On a cliqué sur le bouton OK1
     
    		Bonton1(); 
     
    	   case hWndB2 // On a cliqué sur le bouton OK2
     
    		Bonton2(); 
     
    	   case WM_DESTROY: // On a fermé la fenetre, enfin si je peux recuperer l'evenement de cette maniere ???
     
            PostQuitMessage(0);
            break;
    	  }
    	}
        }

  6. #6
    Membre Expert
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Par défaut
    Citation Envoyé par andrebernard Voir le message
    Non ma seule question est de ne pas mettre les evenements dans la callback si l'on est pas obligé parfois peut aussi soulager un code.
    Tente et tu verra bien ^^ Dans la majorité des cas simples cela n'a pas de grande influence.

    Citation Envoyé par andrebernard Voir le message
    Imagine que tu ai une fenetre avec quelques boutons et un controle String
    Le nombre d'evenements pouvant se produire est extremement reduit.
    En réalité, la simple existance d'une fenêtre implique pas mal d'évènements, mais la plupart (repaint/resize/move/mousemouve/...) ne t'intéressent pas.

    Le meilleur conseil que je puisse te donner est : fais des essais et prends tes aises. Tu finira rapidement par comprendre les avantages et désavantages des callbacks à la win32. Une fois cela fait, j'essaierai de te convertir à Qt ou GTK xD

  7. #7
    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
    Dans la majorité des cas simples cela n'a pas de grande influence
    Merci de ta réponse, donc elle tenterait de me faire penser que tu n'as pas d'objection formelle à faire comme ceci, dans certains cas simple, et que cela pourrait marcher

    En réalité, la simple existence d'une fenêtre implique pas mal d'évènements, mais la plupart (repaint/resize/move/mousemouve/...) ne t'intéressent pas.
    Oui pas dans ce cas, en effet, j'utilisais les callback dans un autre langage pour justement gerer ce genre d'événements "rapides"
    Parfois meme, pour certains MouseMove simples, je ne les utilisaient pas.

    Maintenant ne connaissant pas ce qui se cachait derriere ce langage, j'avais besoin de savoir si pour des gens comme vous, qui maitrisez ou connaissez bien le C, cela etait une chose impossible de ne pas passer par une callback meme pour gerer en clic bouton

    Le meilleur conseil que je puisse te donner est : fais des essais et prends tes aises. Tu finira rapidement par comprendre les avantages et désavantages des callbacks à la win32
    "Aise"... est peut être un peu ostentatoire comme mot avec le C
    J'ai l'impression quand même de m'asseoir d'un bon fauteuil a un banc public

    Mais je doit être mazo, j'en fait réellement depuis 2 jours, et ça me botte a mort..
    De deux choses l'une, c'est justement parce que je ne le connais pas, ou bien c'est parce que l'on est prés des API que j'adore, et que j'en avais marre de passer par des declare ci, declare la, en VB et des trucs de dingues qui en fin de compte paraissaient encore plus compliqué pour faire du simple

    J'avance pas a pas..peut etre que j'abandonnerais parce que c'est trop dur, car je n'ai aucune formation informatique, mais pour l'instant, je retrouve la source de tout ce que j'ai appris avec un langage un peu similaire au C, et je ne me sent pas trop perdu.

    J'ai juste beaucoup besoin de vous, pour l'instant, pour savoir ce que j'ai le droit de faire et ce que je n'ai pas, ainsi que connaitre certaines ficelles de "vieux routiers"
    Imagine y'a deux jours la seule chose que je savais faire avec VC6...c'est double cliquer sur l'icone du bureau, alors j'ai en plus a apprendre le maniement de l'IDE

    Une fois cela fait, j'essaierai de te convertir à Qt ou GTK
    Je sais que QT est un truc d'enfer, et GTK aussi, j'en entend parler de partout et que en bien.
    Maintenant, peut etre que le fait d'en avoir un peu bavé avec le C pure, vous donne les bases et le confort pour les utiliser.
    Militairement dit :"Faut en chier un peu dans les tranchées, pour apprécier le confort d'un couchette...meme sans matelas"

  8. #8
    Membre Expert
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Par défaut
    Citation Envoyé par andrebernard Voir le message
    Merci de ta réponse, donc elle tenterait de me faire penser que tu n'as pas d'objection formelle à faire comme ceci, dans certains cas simple, et que cela pourrait marcher
    Tout à fait

    Citation Envoyé par andrebernard Voir le message
    Maintenant, peut etre que le fait d'en avoir un peu bavé avec le C pure, vous donne les bases et le confort pour les utiliser.
    Militairement dit :"Faut en chier un peu dans les tranchées, pour apprécier le confort d'un couchette...meme sans matelas"
    Tout à fait

    Ce que j'aime bien avec le C et que je n'avais pas trouvé dans les "langages" que j'utilisais avant cela (tu parlais de VB, c'en est un par exemple), c'est que son comportement est défini rigoureusement. On sait exactement ce qui se passe derrière chaque ligne, et on peut en déduire les comportements dans les cas limites ou dégénérés. Ainsi, quand on travaille à bas niveau, on a une gestion totale des données que l'on manipule, et c'est jouissif. De plus, il y a des trucs de gourou que je trouve magnifique en C (comme par exemple le corps de la fonction strcpy donné en exemple dans le livre de K&R).
    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void strcpy(char* s, const char* t) {
       while(*s++=*t++)
          ;
    }

    Aller, amuse-toi bien, et surtout fais des bêtises xD

  9. #9
    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
    Je te remercie mille fois de ta gentillesse

    J'ai perdu 30 ans a passer par des langages haut niveau, et plus je programmais, plus j'avais envie.

    Le C m'a paru tellement dur pendant toutes ces années que j'ai maintes fois abandonné, rien qu'en ouvrant l'IDE

    Puis j'ai eu la chance de croiser un langage créé en C par une personne qui le maitrise, et qui a eu l'intelligence, car la on peut parler d'intelligence, et l'humilité de ne pas cacher le C derrière des fonctions avec des noms abracadabrants, et changer la structure du C.
    De ce fait certains programmeurs en C, se sont mis a son langage, simplifiant quand même grandement la gestion des tableaux, des classes, etc...tout en laissant le bas niveau, et aussi les bases du C (Callback, thread, création de DLL...) et aussi certaines instructions cachées derrière le VB, comme Break, continue...etc..

    J'ai eu le bonheur de sauter de VB a ce langage procédural, qui m'a paru dur au debut, car il fallait comme en C tout gérer a la "mano" (Événement, etc..)
    Mais plus j'en faisait, plus je me rapprochais du processeur, pointeurs, handles etc...et donc plus je me rapprochais sans m'en apercevoir de mon rêve "le C"

    En fin de compte ce langage a joué le role d'une barque qui contrairement a d'autre a glissé lentement sur la rivière, dans le bon sens et quand j'ai levé la tete, et allumé il y a quelques jours l'IDE, je me suis aperçu de la similarité des deux langages.

    J'ai grâce a lui monté une grande marche vers le C tant idolâtré, et aujourd'hui "je couine comme un goret" tellement je suis content de voir ma fenêtre apparaitre et pouvoir a peu prés gérer les événements.

    La route est encore longue, mais je m'aperçois maintenant que le C, est bien plus que le langage créateur de tout ou presque ce qui existe, c'est celui qui fait que l'on peut s'asseoir a coté des API et discuter avec elles comme si c'était nos copines

    J'ai toujours entendu dire que la programmation Win32 des API, etait imbuvable, qu'il fallait passer par MFC, etc ...pour l'instant c'est que du bonheur les API...peut etre viendrais je pleurer quelques fois sur ce forum parce qu'elle m'auront fait du mal..
    Mais un grand amour est constitué de bonheur et aussi de tristesse

    Merci encore de tous tes précieux conseils et je te souhaite une excelente soirée

  10. #10
    Membre Expert
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Par défaut
    C'est joli ce que tu dis Mais quel est ce fameux langage dont tu parles ? Et pour rebondir sur les MFC/WinAPI, je trouve ça imbuvable aussi bien l'un que l'autre. En réalité, imbuvable n'est pas vraiment le mot, mais je trouve que c'est un frein au bon déroulement d'un projet, on est esclave des contraintes qu'ils imposent concernant l'architecture du code.

  11. #11
    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
    C'est joli ce que tu dis Mais quel est ce fameux langage dont tu parles ?
    Je ne donne le nom que lorsque l'on me le demande..car j'en parle tellement avec le coeur, et tellement souvent, faut dire que je l'aime tellement, depuis 5 ans que j'en fait tous les jours, et qu'il m'a apporté tant de bonheur, que on doit me prendre soit pour un dingue (Ce qui serait pas vraiment faux ), soit pour un commercial

    C'est PureBasic de Frederic Laboureur un français super gentil et competent.

    Il viens de feter ses 10 ans, pas FRED ...hein.... bien qu'il soit super intelligent...mais le langage

    Et il commence a creuser son trou aupres des plus grand, la preuve...il est dans votre superbe et immense forum
    http://purebasic.developpez.com/

    Le site officiel
    http://www.purebasic.com/

    Le forum tres actif
    http://www.purebasic.fr/english/

    Dans ce forum il y a beaucoup de programmeur C, et de bon niveau qui retrouvent justement la majeure partie de la puissance du C, sans les contraintes.
    Et aussi des programmeur ASM, puisque l'on peut mixer l'ASM et le basic ensemble

    En fait, on a souvent reproché d'avoir nommé son langage avec le mot BASIC a FRED, cela le deprecie un peu, car il n'a de BASIC que le nom, c'est un langage bas niveau, tres simple, efficace, rapide, avec des centaines de fonctions, des bibliotheques statiques deja consequentes dans pas mal de domaines, et aussi des lib statiques que pas mal de membres créé pour lui.

    Il peut tout comme le C creer des DLL standard, et tres tres facilement, car le code est le meme que ce soit un EXE ou une DLL

    Enfin....il va falloir que je fasse un site sur ce langage, car on me pose tellement cette question, que je doit avoir ecrit au moins 100 fois les mots precedents

    Le gros probleme de FRED c'est que c'est une petite equipe de 4 personne et ils ne mettent pas de temps dans le publicitaire, rien dans le bla bla, tout dans la qualité et le serieux.
    Du coup quand quelqu'un tombe sur le site..il se barre tout de suite en croyant qu'il est tombé sur un nouveau langage basic de m... comme il en existe tant

    Si tu as 10 secondes, FRED a demandé a ses membres de bien vouloir donner des exemples de ce qu'ils ont realisé en PB, histoire d'un jour d'étoffer son site. (Que les dieux l'entendent)
    Je pense que les images parlent d'elle meme

    http://www.purebasic.fr/english/view...308641#p308641

    Comme je le dit souvent ....pas mal de programmeur ASM et C codent en PB...
    La question a se poser c'est pourquoi ????

    Si un jour tu voulais d'autres infos...je suis la

    Et pour rebondir sur les MFC/WinAPI, je trouve ça imbuvable aussi bien l'un que l'autre. En réalité, imbuvable n'est pas vraiment le mot, mais je trouve que c'est un frein au bon déroulement d'un projet, on est esclave des contraintes qu'ils imposent concernant l'architecture du code.
    Moi le probleme c'est que je code que des utilitaires fenestrés, et bien souvent en utilisant les API...alors au niveau du choix
    Et comme j'ai une petite tete, je suis obligé de m'imposer le moins de langages possibles, alors je crois que le C etait une evidence avant que je sois trop vieux pour ne plus pouvoir coder, pourquoi s'adresser aux saints quand on peut parler a dieu

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

Discussions similaires

  1. Gestion des evenements d'un Menu
    Par juk dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 05/12/2006, 16h37
  2. Gestion des evenements avec la SDL
    Par gusgus dans le forum Ogre
    Réponses: 5
    Dernier message: 01/11/2006, 10h47
  3. Réponses: 3
    Dernier message: 25/08/2006, 23h11
  4. Réponses: 11
    Dernier message: 15/02/2006, 14h45
  5. [C#] Gestion des evenements
    Par zebulix13 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 12/06/2004, 18h40

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