C++ 具有c接口的目标c库

C++ 具有c接口的目标c库,c++,c,objective-c,xcode,qtkit,C++,C,Objective C,Xcode,Qtkit,我遇到了一个问题。。。我正在尝试在我们工作的应用程序中使用QTKit。唯一的问题是应用程序是用C++编写的,而不是Obj-C。我已经浏览了苹果的文档来寻找答案,但是我没有发现任何有用的东西。p> 基本上,我想做的是在Obj-C中编写一个控制器类,通过C接口将其方法公开给我的应用程序。我已经编写了所有代码,但是当我尝试将它连到一个示例C++应用程序时,它会在LIB中找到Obj-C符号并抱怨它们存在。我曾想过使用编译器标志隐藏符号,但我在Apple的文档中看到Obj-C不受此影响,因为类和消息是由运

我遇到了一个问题。。。我正在尝试在我们工作的应用程序中使用QTKit。唯一的问题是应用程序是用C++编写的,而不是Obj-C。我已经浏览了苹果的文档来寻找答案,但是我没有发现任何有用的东西。p> 基本上,我想做的是在Obj-C中编写一个控制器类,通过C接口将其方法公开给我的应用程序。我已经编写了所有代码,但是当我尝试将它连到一个示例C++应用程序时,它会在LIB中找到Obj-C符号并抱怨它们存在。我曾想过使用编译器标志隐藏符号,但我在Apple的文档中看到Obj-C不受此影响,因为类和消息是由运行时绑定的,而不是由链接器绑定的

有人成功地做到了这一点吗

谢谢,
罗比

可以通过使用ObjuleC++(

)从C++应用程序中使用QtKIT
将访问QTKit的文件从
.cpp
重命名为
.mm
。这不会改变现有代码中的任何内容,但您可以从这些文件中使用Objective-C。

如果可能的话,我宁愿远离Objective-C++。代码在windows和linux之间也是共享的,所以我只希望有一个C接口。无论如何,您必须将QTKit部分与平台无关的部分分开。您可以将特定于平台的部件放在mm文件中,因为它们不会在其他平台上编译。但听起来您希望在QTKit旁边插入一个抽象层,以便于采用不同的视频API。这是有道理的。