2010-10-13 80 views
3

我有一個不使用名稱空間的C++庫。我想將它移植到Objective-C。問題在於兩者之間的名稱衝突。我希望它在Objective-C中具有與C++對象名稱相同的名稱。但是,我只是無法弄清楚這樣做的最佳方式,而不會讓它變得一團糟。我希望爲此提供解決方案。Objective-C中包裝C++類

+0

爲什麼你需要這個?有沒有辦法使用它,因爲它是?目標平臺是什麼? – Keynslug 2010-10-13 06:37:55

+0

哪裏可以使用objc。我試圖在ObjC中打包Qt,所以我可以在Windows,Mac,Linux上使用ObjC。 NeXTstep的gui屁股很醜。所以我想要一個更性感的gui。 – zekecoma 2010-10-13 08:09:30

回答

1

以與在Mac上編寫框架和Apple在其框架上編寫框架相同的方式爲所有Objective-C類加上前綴。

+0

基礎類和我試圖創建的類都是前綴。 – zekecoma 2010-10-14 03:21:57

+0

對OC類使用不同的前綴。 – JeremyP 2010-10-14 08:24:09

0

您可以使用#define#undef暫時重命名代碼中的類/函數等 - 只需確保在調用C++代碼時它們是未定義的。

例如在您的包裝的物管有#define Bar_Function Foo_Function,然後圍繞該調用庫的Bar_Function與#undef Bar_Function#define Bar_Function Foo_Function

現在,當您需要導出自己的Bar_Function唯一的問題就來了的碼位...

不要這樣做 - 它的愚蠢,只是解決它。 :)

+0

...或者實際上,只需使用C++開始,它就更好。 :) – jheriko 2010-10-14 20:58:21