2009-04-01 13 views
6

私はObjective-Cの経験は全くありませんが、強いC++バックグラウンドを持っています。 Objective-CからC++で書かれたポートコードへの優れたリファレンスを使って、自動化されたツールやスクリプト、あるいは最悪の場合、いくつかの手動の方法がありますか?関係する困難は何ですか?Objective-CからC++に移植する最も良い方法は何ですか?

編集: 私はコードがObjective-Cをかなり簡単に使用していると言います。おそらくOSレベルのUIのやり方をあまり使わないiPhoneアプリです。 C++バージョンは、GNUStepがオプションではない非Appleプラットフォーム用であるため、Objective-C++はオプションではありません。

+0

あなたの周りの正しい方法という持っていますか?強いC++バックグラウンドを持っていますが、stuff *を* C++に移植したいのですか? – Cebjyre

+0

@Cebjyre、彼はそれを読んでC++に翻訳するのに十分なObj-Cを知らない。しかし、誤った翻訳が原因でポップアップすると、C++のバグを修正することができます。少なくとも、それは私が推測するものです。 – strager

+0

私はこれを可能性として受け入れますが、変換プロセスがバグの多いコードにバグを導入する可能性が高いため、既知のC++コードをObj Cコードに変換するツールは学習面で便利です。 – Cebjyre

答えて

0

Objective-Cは単なるプリプロセッサ(およびランタイムライブラリ)でした。エンドユーザーコード以外のすべてのライブラリを移植する際には、より多くの問題があります。 翻訳時に無食べる行動が楽しいです。

しばらくの間、Objective-Cフレームワークを使用した後、すべてのC++コードで不正なデザインが見られる可能性があります。

3

私が知っている自動化されたツールはありません。 Objective-Cの動的性質はC++に変換するのが非常に難しいので、Objective-C以外のすべてのコードではかなりの労力が必要になります。あなたはOS Xにとどまっていますか(あるいは、OS X以外のOSでObjective-Cを使用する少数の人々の場合は、GNUStepの依存関係を維持していますか?)もしそうなら、最も簡単なアプローチは、Objective-CコードとC++コードの間にブリッジを構築するのにObjective-C++を使うことです。 Objective-C++はObjective-CのApple拡張機能であり、Objective-CとC++のコードを混在させるGCCコンパイラです。したがって、C++オブジェクトを呼び出すか参照する(ただし継承はしない)Objective-Cオブジェクトを作成し、C++コード内からObjective-CインスタンスにObjective-Cメッセージを送信することができます。

6

同じ問題が発生しました。そして、いくつかの解決策を持っている:

  • Microsoftは今だけUWPアプリケーションのためとはいえ、それ自身のObjective C "ブリッジ" を提供しています。

    https://github.com/Microsoft/WinObjC

  • は、2007年に私は、Visual StudioでのObjective-Cをサポートしようとした私自身にObjCランタイムを書いたが、私はそれのためのパーサを書くために多くの時間を持っていません。あなたが持っている場合は、私はC++で財団フレームワークの基本的な機能を書いた

    http://code.google.com/p/qobjc/

  • :)ことができます。この場合、手動で移植する必要があります。あなたのコードはC++になりますが、Objective-Cのようになります。このライブラリはiPhoneで動作しました。

    http://code.google.com/p/dcocoa/

関連する問題