在Objective-C中包装C ++类

时间:2010-10-13 06:08:18

标签: c++ objective-c

我有一个不使用命名空间的C ++库。我想将它移植到Objective-C。问题是两者之间的名称冲突。我希望它在Objective-C中具有相同的名称,即C ++对象的名称。但是,我只是无法找到最好的方法来做到这一点,而不是它变得一团糟。我希望有一个解决方案。

2 个答案:

答案 0 :(得分:1)

以与在Mac上编写框架相同的方式为您的所有Objective-C类添加前缀,而Apple则使用其框架。

答案 1 :(得分:0)

您可以使用#define#undef临时重命名代码中的类/函数等 - 只需确保在调用C ++代码时它们是未定义的。

e.g。在包装器的标题中有#define Bar_Function Foo_Function,然后用#undef Bar_Function#define Bar_Function Foo_Function和{{1}}包围调用库的Bar_Function的代码位

现在唯一的问题是你需要导出自己的Bar_Function ......

不要这样做 - 它很傻,只是解决它。 :)