2011-11-04 93 views
12

我正在編寫一個C接口到C++庫的過程,我正在尋找一些高質量的示例(或最佳實踐)。C++庫的C接口示例?

到目前爲止,這一次似乎相當有前途:http://czmq.zeromq.org/manual:czmq

任何其他建議?

+0

我正要建議ZeroMQ,很高興我通過:) –

+0

可能重複閱讀問題:http://stackoverflow.com/q/7953559/440558 –

+0

絕對不是該問題的重複。這個問題詢問了如何做得很好的例子(也就是如何設計基於C++ API的C API)。另一個問題完全是關於這樣做的基本機制。 –

回答

0

如果您的C++庫在Windows上寫爲COM。有一些工具可以爲它自動生成C接口。

1

您可以看看Parma Polyhedra Library作爲一個優秀的C接口的例子,以一個寫得很好的C++庫。 PPL是一款免費的GPL編輯軟件,特別適用於GCC編譯器。

0

我可以建議FTGL這是一個提供C接口的C++庫。下面是實現完全一樣的東西兩個示例程序:也

注意FTGL使用pImpl paradigm爲了實現跨版本的二進制兼容性。見here爲什麼它很好。

聲明:我是FTGL的撰稿人。

0

libzmq是一種奇怪的情況,因爲在低級別的C API原本打算像POSIX插座,絕對不是面向對象的(我們使它更加一致並且隨着時間的推移組織起來)。同時,實際的庫是用C++編寫的。

C++-to-C接口位於libzmq/src/zmq.cpp中,由一堆調用「真正」C++代碼的簡單C函數組成。另一方面,CZMQ的目標是提供更加優雅的東西,它提供了一個帶有構造函數,析構函數,容器,私有屬性等的簡單類模型。沒有任何激進但是確實將C變成了一種更優雅的語言。

我不確定CZMQ類方法如何映射到C++ API,除非該API被明確設計爲映射。

聲明:我是CZMQ大部分作者。