正如我previousquestions的結果,我問自己:是不是有用在所有安裝了插件系統C++接口?以下幾點是講反對:我爲什麼要建立C++中的插件接口而不是C
- 沒有共同ABI不同的編譯器和它們的版本之間,在內存中的對象
- 沒有直接出口類沒有共同的佈局。你必須導出工廠和析構函數。問題出現,如果你的對象是由其他對象只
delete
它們,例如智能指針舉行。 - 的STL的不同實現,如果你剋制自己的C++語言,你幾乎結束的其餘部分可以不通過
std::list<T>
到插件 - 像升壓
不同版本使用的庫與「C子集」。有沒有說使用C++的觀點? Qt-Toolkit如何解決上述問題?
注:我指的主要是Linux系統。不過,我對其他平臺上的解決方案感興趣。
另一個問題:什麼是用C接口的問題?內存佈局struct
s? C應該避免哪些語言部分?
C標準也沒有指定ABI。事實上,你所抱怨的所有問題都可以適用於C,就像C++一樣。 – 2009-08-05 13:49:27
是的,值得注意的是,標準一般由操作系統設置,可能與C編譯器的功能有關,也可能沒有關係。在Windows上,它是stdcall。 – 2009-08-05 14:03:40
@Neil。 C標準具有明確的ABI。這就是爲什麼C是許多其他語言之間的GLUE的原因。 – 2009-08-05 17:00:19