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 :

Contribuer sans connaître C++


Sujet :

C++

  1. #1
    Membre émérite
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 2 373
    Points : 2 679
    Points
    2 679
    Par défaut Contribuer sans connaître C++
    Bonjour tout le monde,

    De temps en temps je vois un logiciel très intéressant, publié avec les sources en C++.

    Un exemple est Notepad4, inspiré de Notepad2.

    Je pense que je peux dire que je programme plutôt couramment en C#, mais mes notions de C++ sont tellement élémentaires que je n'ose pas en parler.

    Je sais que .Net est conçu pour qu'on puisse développer un module dans un langage et le faire appeler par un autre module dans un autre langage.

    Mais maintenant, si je veux aider à changer la taille de boutons sur une barre d'outils, ou d'infobulles ...
    Est-ce que ça implique d'apprendre C++, ou est-ce qu'on peut se débrouiller ?

    Si maintenant je veux proposer de trier les lignes dans un éditeur, peut-être est-ce plus facile à gérer ?

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    548
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 548
    Points : 964
    Points
    964
    Par défaut
    Quelle différence entre Notepad4 et Notepad++
    avez-vous un lien ?

    Mon problème avec .NET c'est qu'il utilise un JT compiler (qui génère du p-code), donc on n'est pas en prise directe avec l'OS dont toutes les DLLs bas niveau sont écrites en C/C++.

    Le code managé ajoute des surcouches, alors que la flat APi permet d'écrire du code natif de très petite taille en limitant les dépendances.

  3. #3
    Membre émérite
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 2 373
    Points : 2 679
    Points
    2 679
    Par défaut
    Il faut tout prendre à la base, alors ?

    https://github.com/zufuliu/notepad4

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    548
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 548
    Points : 964
    Points
    964
    Par défaut
    >>Il faut tout prendre à la base, alors?

    C'est in choix, et c'est celui que j'ai fait.

    J'ai laissé tomber C# en 2005. devant l'impossibilité de l'utiliser pour écrire des DLLs bas niveau et pour m'affranchir du runtime qui n'a cessé de croitre au cours des années.

    J'ai le même problème avec le p-code WinDev, et je continue d'utiliser la version 17 car dans les versions actuelles certaines DLLs sont devenus monstrueuses.
    Au demeurant WinDev lui-même est écrit en C++.

    PS: Merci pour le lien.

  5. #5
    Membre émérite
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 2 373
    Points : 2 679
    Points
    2 679
    Par défaut
    Ah oui pour les API Windows on appelle pinvoke.net quand ça marche.
    Enfin quand il faut en trouver une nouvelle, parce que j'en ai déjà une flopée dans quelques modules.

    Bon, on dirait pour C++ il ne suffit pas de pointer son nez ...
    Merci quand même.

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 166
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 166
    Points : 12 284
    Points
    12 284
    Par défaut
    Bon, là, on nage dans l'à peu près.

    J'ai laissé tomber C# en 2005. devant l'impossibilité de l'utiliser pour écrire des DLLs bas niveau et pour m'affranchir du runtime qui n'a cessé de croitre au cours des années.
    C# est le langage "flagship" de .NET, mais rien n'empêche de générer du code exécutable "Natif" à partir de code C# (à par quelques restrictions sur les fonctionnalités utilisées).
    On peut coder en C# sans avoir à utiliser un Runtime .NET.

    Je sais que .Net est conçu pour qu'on puisse développer un module dans un langage et le faire appeler par un autre module dans un autre langage.
    Les API Windows (Win32), c'est du C, pas du C++.
    Le C++ n'est pas une "lingua franca" comme le C car il n'a toujours pas d'ABI standardisé.

    La contribution, c'est très variable en fonction des projets.
    Mais là, vous êtes en plein effet "Dunning-Kruger".
    Mais c'est rare d'avoir besoin QUE d'expert dans un langage.
    Le langage est assez souvent accessoire si le projet est bien managé, on vous donnera les infos pour monter en compétence jusqu'au niveau souhaité pour le projet.

    Mais maintenant, si je veux aider à changer la taille de boutons sur une barre d'outils, ou d'infobulles ...
    Est-ce que ça implique d'apprendre C++, ou est-ce qu'on peut se débrouiller ?
    C'est pas lié au langage C++ lui-même. Il ne dispose pas de bibliothèque graphique "standard".
    Donc, un spécialiste du langage C++ n'aura pas plus de billes qu'un newbie sur ce type de codage.

  7. #7
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 668
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 668
    Points : 10 673
    Points
    10 673
    Par défaut
    Citation Envoyé par bacelar Voir le message
    C'est pas lié au langage C++ lui-même. Il ne dispose pas de bibliothèque graphique "standard".
    Je pense qu'il faut nuancer effectivement si c'est utiliser 1 API create_button, put_widget, … le langage est accessoire

    Mais si l'API fait appel aux fonctionnalités du langage (virtualité, amitié, déplacement, lambda, STL, …) dans ce cas cela va être compliqué.
    Par exemple, avec l'API 32 tu as des paramètres DWORD wParam et lParam (<- les fameux) qui sont des handles … c'est à dire des pointeurs. Donc si tu ne connais pas le mécanisme, tu plantes direct

  8. #8
    Membre émérite
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 2 373
    Points : 2 679
    Points
    2 679
    Par défaut
    Merci de ces éclairages.
    Apparemment, il n'y a pas 36 solutions, il faut demander sur place ce qu'ils en pensent.
    Pas cette semaine d'ailleurs enfin ça c'est autre chose.

    OK, je suppose qu'on peut considérer la question comme résolue, pour dire qu'on a à peu près dit ce qu'on pouvait dire ici ?

  9. #9
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    548
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 548
    Points : 964
    Points
    964
    Par défaut
    La bible des programmeurs C a été écrite par Charles Petzold (5 eme édition) il y a plus de 20 ans.
    https://github.com/Adityasakare/Book...205th%20Ed.pdf

  10. #10
    Membre émérite
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 2 373
    Points : 2 679
    Points
    2 679
    Par défaut
    Et il paraît que son chat n'aime pas le C.
    Je n'aurais pas su dire que C et C++ partageaient la même doc.

    Le Kernigan et Ritchie, aussi ?

  11. #11
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 166
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 166
    Points : 12 284
    Points
    12 284
    Par défaut
    Le Petzold, sérieux ?
    Ça n'aborde même pas DirectX.

    C'est Win32, une API C, pas du tout C++.

    Je suis même pas sûr que le Petzold aborde correctement COM (ça doit encore faire du DDE 1.0).

    @Gluups, je pense qu'ils seront plus sereins que t'es lu et compris le K&R que le Petzold, qui montre comment on programmait "mal" dans les années 80/90.

  12. #12
    Membre émérite
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 2 373
    Points : 2 679
    Points
    2 679
    Par défaut
    Les lecteurs les plus rapides risquent d'être surpris par la lecture de ce message et du suivant. J'ai remplacé au lieu de compléter, heureusement les archives sont disponibles mais je me suis rappelé ça après.


    Pour être franc, j'ai fait un peu de C au début des années 90, et c'est à cette occasion que les lectures découvertes pendant ma formation, juste avant, m'ont servi.

    J'ai aussi un peu bricolé avec le macro-assembleur (après avoir un peu fait de l'assembleur sous DEBUG). Il n'y a pas longtemps, j'ai voulu un programme qui puisse émettre une séquence ANSI. C# fait ça fastoche avec 158620 octets dans le répertoire exécutable. On doit pouvoir rogner un peu sur les fichiers de config et les fichiers de symboles pour le débogage, mais en assembleur je faisais ça avec 30 octets. Comme c'était un des programmes que j'ai faits directement sous DEBUG, c'était 30 octets d'encombrement total sur le disque, sources comprises. Les disques sont beaucoup moins chers maintenant, mais ils sont moins fiables aussi.
    C'est après que j'ai découvert que j'attaquais ça par la face Nord, puisqu'on peut émettre un caractère d'échappement par Ctrl [, la restriction à mentionner étant que ma machine a deux touches [, et seule une des deux est valide pour cette manœuvre.
    Après, je ne jurerais pas que cette touche, valide pour émettre un caractère d'échappement, existe sur toutes les machines. Déjà que sur les portables les témoins LED du clavier se font rares ...

  13. #13
    Membre émérite
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 2 373
    Points : 2 679
    Points
    2 679
    Par défaut
    C'est après que j'ai découvert que j'attaquais ça par la face Nord, puisqu'on peut émettre un caractère d'échappement par Ctrl [, la restriction à mentionner étant que ma machine a deux touches [, et seule une des deux est valide pour cette manœuvre.
    Je suppose que nous sommes une majorité d'Européens, ici.
    Si jamais il y a un Australien dans l'Assemblée, il faut dire que chez nous, les Alpinistes qui aiment s'imposer des défis toujours plus exigeants, quand ils ont grimpé un sommet, disent "bon, ben l'année prochaine, je le fais par la face Nord", parce que la face Nord étant moins exposée au soleil, est aussi plus gelée, et donc plus dangereuse –donc plus exigeante.

    Du coup, l'expression a fini par essaimer, et on voit des ados arborer ça sur leur tenue, même si l'ascension la plus périlleuse qu'ils aient entreprise est celle de l'échelle qui mène au grenier chez Papy et Mamie.

  14. #14
    Membre expérimenté
    Femme Profil pro
    ..
    Inscrit en
    Décembre 2019
    Messages
    654
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 94
    Localisation : Autre

    Informations professionnelles :
    Activité : ..

    Informations forums :
    Inscription : Décembre 2019
    Messages : 654
    Points : 1 431
    Points
    1 431
    Par défaut
    Salut tout le monde,

    Je n'ai rien contre le Petzold en lui-même, mais le qualifier de « la bible des programmeurs C », dans les énormités, c'est l'Everest. Cela dit, on peut lui reconnaître le mérite d'avoir contribué à l'essor de la notation hongroise. Les initiés remarqueront la petite touche d’ironie.

    En ce qui concerne Notepad4 (exception faite de la bibliothèque tierce Scintilla), j'ai regardé une dizaine de sources récentes. Bien que la présentation du projet parle d'une réécriture en C++ moderne, je n'y ai pas vraiment vu de C++ tout court. Finalement, le principal intéressé n'avait aucune raison d'être effrayé.

Discussions similaires

  1. Comment récupérer le nom du fichier sans l'extension ?
    Par altahir007 dans le forum Langage
    Réponses: 16
    Dernier message: 13/11/2009, 13h20
  2. [TP]Compiler un prog sans entrer dans TP7
    Par poppels dans le forum Turbo Pascal
    Réponses: 11
    Dernier message: 23/10/2002, 18h46
  3. MDI sans MFC, possible ?
    Par delire8 dans le forum MFC
    Réponses: 4
    Dernier message: 17/06/2002, 07h38
  4. [Kylix] Fiches sans bordure
    Par alex dans le forum EDI
    Réponses: 4
    Dernier message: 28/04/2002, 21h19

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