私は最近、Webkit モデルが Apple の Lion と Safari の最終リリースでサポートされなくなり、NPAPI を使用するために全員が Firebreath プロジェクトに移行していることを知りました。
次のネイティブ フレームワークとリンクする基本的な Cocoa アプリケーションがあります。
- コアグラフィックス
- コアデータ
- IOKit
- PFEventTaps (これは Pfiddlesoft.com によるサードパーティ フレームワークです)
私はプラグインを使用したことがないので、これは私にとって少し新しいことです。Richard bateman によって書かれた MAC チュートリアルから始め、ガイドラインに従った後、最終的には個人プロジェクト用の firebreath プロジェクト テンプレートにたどり着きました。私が行った次のステップは、すべての Objective-C クラスをソース ファイル フォルダーに配置し、4 つのフレームワークとのリンクを追加することでした。最後に、プラグインで公開する必要がある新しいパブリック メソッドを MyProjectPluinApi.h に追加しました。 registerMethod("MyMethod", make_method(this, &WilmerPlugInAPI::MyMethod ));
firebreath プロジェクトをビルドすると、多くのコンパイル エラーが発生します。そのうちの 1 つは非常に繰り返し発生するエラーです
NSString was not declared in this scope.
。エラーは NSObjCRuntime.h を指しています
今まで、XCODE 3.2.6 でこのビルドを正常に取得できませんでした
ここで何が問題なのですか?このテンプレート プロジェクトで CPP スタイルを実現するには、すべてのコードを変更する必要がありますか? または、何らかの方法でフレームワークをリンクできますか? 見ることができるサンプルはありますか?
詳細: 2011 年 11 月 7 日: 簡単なプロジェクトでテストしようとしていました。
- まず、プロジェクト testOfFB を作成します
- /users/Me/Firebreath-dev/build/projects/testofFB に生成されます
- 次に、クラス testFBApi.cpp を変更し、名前を testFBApi.mm に変更します。
- testMath.m という名前の Objective-c クラスを作成し、名前を testMath.mm に変更しました。
署名付きの Add メソッドを追加します。
-(long) Add:(long)a:(long)b:(long)c;
最後に、ファイル testFBApi.mm を次のように変更します。
registerMethod("add", make_method(this, &testFBAPI::add ));
add メソッドの実装では、objective-c クラス メソッド「add」のインスタンスを作成して、objective-c メソッドの呼び出しをテストします。インクルードを行い、ファイル /Mac/projectDef.cmake を次のように変更しました。
target_link_libraries(${PROJECT_NAME} ${PLUGIN_INTERNAL_DEPS} ${Cocoa.framework} // added line ${Foundation.framework} //added line )
prepmac.sh スクリプトを実行してから xcode ソリューションをビルドすると、同じエラーが表示され、testFBApi が宣言されていないなどのエラーが表示されます。