12
votes

Exemples d'interfaces C aux bibliothèques C ++?

Je suis en train de rédiger une interface C sur une bibliothèque C ++ et je recherche des exemples de haute qualité (ou des meilleures pratiques).

Jusqu'à présent, celui-ci semble assez prometteur: http://czmq.zeromq.org/manual de:czmq

Toute autre suggestion?

c c++

3 commentaires

J'allais juste recommander Zeromq, content de lire la question à travers :)


Dupliqué possible: Stackoverflow.com/q/7953559/440558


Nettement pas un duplicata de cette question. Cette question demande des exemples de comment le faire bien (c'est-à-dire comment concevoir l'API C basé sur une API C ++). Cette autre question est uniquement intéressée par la mécanique de base de le faire du tout.


6 Réponses :


0
votes

Si votre bibliothèque C ++ est écrite comme COM sous Windows. Il existe des outils pour générer automatiquement l'interface C.


0 commentaires

1
votes

Vous pouvez regarder dans le Bibliothèque de PolyHedra Parma comme exemple d'excellente interface C à un puits écrit C ++ une bibliothèque. PPL est un logiciel GPL-DE gratuit, notamment utilisé à l'intérieur du Compiler GCC .


0 commentaires

0
votes

0
votes

libglu (Bibliothèque utilitaire OpenGL) est partiellement écrit en C ++: http: // cgit.freedesktop.org/mesa/mesa/tree/src/glu


0 commentaires

0
votes

Libzmq est une sorte de cas étrange puisque l'API de bas niveau C était initialement destinée à ressembler à des prises de posx, et absolument pas orientée objet (nous l'avons rendue plus cohérente et organisée au fil du temps). Pendant ce temps, la bibliothèque réelle est en C ++.

L'interface C ++ - TO-C est en libzmq / src / zmq.cpp, et consiste en un groupe de fonctions C simples qui appellent le code "réel" C ++.

CZMQ D'autre part vise quelque chose de plus chic, fournissant un modèle de classe simple avec des constructeurs, des destructeurs, des conteneurs, des propriétés privées, etc. Rien de radical, mais fait du c dans une langue beaucoup plus élégante.

Je ne sais pas dans quelle mesure l'approche de la classe CZMQ se qualifierait d'une API C ++, à moins que l'API soit explicitement conçue pour être cartographiée.

Disclaimer: Je suis l'auteur de la plupart des CZMQ.


0 commentaires

1
votes

Un autre exemple de haute qualité est le Ouvrir le moteur dynamique . Il a un backend C ++ et un frontend C. Tout est C liaisible.


0 commentaires