• [^] # Re: Langages?

    Posté par . En réponse au journal Comment Freedesktop divise le desktop.. Évalué à 4.

    En fait, des arguments pour accéder aux librairies via du code C.

    J'ai discuté rapidement avec le type qui refait le moteur de dungeon keeper (keeperfx pour les curieux. Et pour les râleurs, je suis pas google).
    A priori et de mémoire, à son job, ils codent les pilotes en C++ et font ensuite une interface en C.

    Pour la raison de ce choix, ceux qui ont voulu se creuser les méninges pour faire une application native (hop hop, dehors, java, dehors, .net :P) qui prenne en charge, par exemple, une mécanique de plug-ins savent qu'effectivement C++ pose de gros soucis de compatibilité binaire.
    Si quelqu'un veut des infos la dessus, j'ai divers liens en réserve, même si j'ai fini par opter pour une lib légère et pas trop mal faite qui m'épargne de réfléchir et de faire moi-même ma lib portable.

    Mais en gros, le problème à retenir est qu'utiliser directement une classe d'un binaire rendra l'interface très instable en terme d'ABI, nécessitant souvent de tout recompiler.
    Rien qu'une version différente de compilateur peut casser le lien application/plug-in! Alors vaut mieux ne pas parler de compilo différents :D
    En revanche, aucun souci pour les fonctions normales… D'où le passage via le C.
    (Problème causé par le "name mangling" qui fait partie des points intentionnellement pas standard du C++ (pour permettre les optimisations en fonction de la machine qui compile).)