2011-12-21 9 views
1

C++コードをObj-Cコードで簡単に使用できるように準備する方法は?C++でアプリケーションのコアを記述し、UIにObj-CとCocoaを使用することは可能ですか?

また、GTKまたはQtを使用しない場合は、クロスプラットフォームアプリケーションを作成する有効な方法ですか?

+1

[こちら](http://stackoverflow.com/questions/525609/use-c-with-cocoa-instead-of-objective-c)は、あなたの質問に対する非常に良い答えです。 – dasblinkenlight

答えて

3

はい、このように作成された出荷アプリケーションがあります。 OSレイヤー(MacではObj-C、WindowsではC++、C++/CLI、C#の組み合わせ)と共有ポータブルレイヤーがあります。

OSの詳細(Obj-CまたはC++/CLI構文など)が移植可能/共有コードで使用されないように、主な関心事はクラス定義で扱われることです。

コードを分離するためにライブラリを作成できますが、これを行う必要はありません。

+0

私はWindowsで、DLLを使用してC++コードを使用することができますが、 C++のレイヤーを目的コードにインポートしますか? – Roman

+0

我々は、単に両方のファイルセットを含むXCodeプロジェクトを持っています。フォルダで整理しますが、すべて出力アプリケーションに含まれています。私たちは、いくつかのC++ファイルセットのための静的ライブラリを持っています。これらのファイルは単にメインプロジェクトにもリンクされています。 – jschroedl

3

はい、間違いありません。それは珍しいことでもありません。たとえば、WebKitのほとんどはC++コードです。 Objective-C++を使用して、C++コードとObjective-Cコードを橋渡しすることができます。

+0

dllがWindows上で動作し、xcodeプロジェクトにライブラリをインポートする方法で、C++コードをライブラリに作成できますか? – Roman

+0

@アーマン:はい。それはむしろ一般的です。 –

2

はい、可能ですし、本当に便利です。 Objective-CのGUIアプリケーションとビジネスロジックを備えたC/C++デーモンの2つの部分に分割する方がよい場合もあります。クロスプラットフォームのアプリケーション開発プロセスを簡略化します。

+1

2つを同時に起動したり停止したり、デーモンをバックグラウンドで連続して実行する必要がありますか? – Roman

+0

起動、再起動、終了などのデーモン活動を管理するためにlaunchctlを使用することができます。 http://developer.apple.com/library/mac/#documentation/Darwin/Reference/Manpages/man1/launchctl。 1.html http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man5/launchd.plist.5.html –

関連する問題