2010-11-22 69 views
6

我目前正在评估一个c/C++库是否可能用于我的特定iPhone项目。原始库大量使用特定于Windows的代码(例如,它包含windows.h和winsock.h)。我知道我将不得不重写使用特定于Windows的代码的部分,并用例如bsd套接字替换winsocks。或者尝试转换为Objective-C++并使用IOS特定的网络API,因为它在Apple的文档中推荐使用。使用使用iphone的网络的c/C++库应用程序目标c

但是,正如在Apple的文档中所证明的,在iOS中,只有C和Objective-C代码才允许联网。 “iOS支持用C和Objective-C编写的网络代码。” (https://developer.apple.com/library/ios/#referencelibrary/GettingStarted/GS_Networking_iPhone/

这听起来像我必须重写Objective-C中的整个库,使其在IOS上工作。或者是否足够在objective-c中编程一个包装类,并使用原始库(适用于bsd套接字API或Objective-C++)库? - >Using C/C++ static libraries from iPhone ObjectiveC Apps

但是实际的网络代码仍然会写成c/C++不是objective-c。

这有可能起作用吗?我不想做适应图书馆的所有工作,然后注意到这种方法无效。

有没有人曾经尝试过类似的东西?

最好的问候, 迈克

回答

1

你应该能够重写你的C++库的一部分,以用于BSD套接字而不是Windows套接字API没有任何问题。

Apple不禁止C++代码访问网络,但是iOS提供的唯一网络API在C(BSD套接字,CoreFundation)或Objective-C(Foundation ...)中,这可能是您混淆的根源。您可以在您自己的代码或静态链接库中自由混合使用C,C++和Objective-C代码。

+0

这是个好消息!非常感谢你! – 2010-11-22 17:44:57

相关问题