2010-11-22 12 views
6

現在、私の特定のiPhoneプロジェクトにc/C++ライブラリを使用できるかどうか評価中です。元のライブラリは、Windows固有のコードを頻繁に使用します(たとえば、windows.hとwinsock.hを含みます)。私は、Windows固有のコードを使用する部分を書き換え、winsockを例えばbsdソケットと置き換える必要があることを認識しています。または、objective-C++に変換して、Appleのマニュアルで推奨されているIOS特有のネットワーキングAPIを使用してみてください。iphoneアプリの目的のためにネットワークを使用するc/C++ライブラリを使用しています

Appleのドキュメントでは、iOSではCとObjective-Cコードのみがネットワーキングに使用されています。 「iOSは、CとObjective-Cで書かれたネットワークコードをサポートしています。 (https://developer.apple.com/library/ios/#referencelibrary/GettingStarted/GS_Networking_iPhone/

これは、IOSで動作させるために、目的のライブラリでライブラリ全体を書き直す必要があるようです。または、objective-cでラッパークラスをプログラミングし、元の(bsdソケットapiまたはobjective-C++に適合した)ライブラリで作業するだけで十分でしょうか? - >Using C/C++ static libraries from iPhone ObjectiveC Apps

実際のネットワーキングコードは、まだc/C++ではなくobjective-cと書かれています。

これが機能する可能性はありますか?私は図書館を適応させるすべての作業を行い、このアプローチがうまくいかないことに気づきません。

誰もが同じようなことをしようとしましたか?

敬具、 マイク

答えて

1

あなたは代わりのWindowsの使用BSDソケットにあなたのC++ライブラリの一部を書き換えることができるはずは何の問題もなくAPIをソケット。

AppleはC++コードがネットワークにアクセスすることを禁じていませんが、iOSによって提供される唯一のネットワークAPIはC(BSDソケット、CoreFundation)またはObjective-C(Foundation ...)のいずれかです。独自のコードまたは静的にリンクされたライブラリで、C、C++およびObjective-Cコードを自由に組み合わせることができます。

+0

これは素晴らしいニュースです。どうもありがとうございました! –

関連する問題