ホームページ>開発ツール>REALbasic Mach-O Plugin 覚書・基礎編
REALbasic Mach-O Plugin 覚書
目次
基礎編
はじめに
今まで何度かトライしては挫折していたプラグインですが、旧作をUB化するにあたって、いよいよ避けられない見通しとなってきました。
挫折の理由としてしては、
(1) うまく動かないときに、どこ(作り方or内容)に原因かあるのか分かりずらい。
(2) 既存の(動作確認済の)サンプルをカスタマイズしようとしても、手を入れていい場所とそうでない場所の区別がつきにくい。
今回、新規作成したプラグインが動作することが確認できたので、「チラシの裏」しておきたいと思います。
なお、当方でのニーズの関係で、ここではMach-O形式のみを対象としています。
テスト環境
・mac mini (intel)
・Mac OS X 10.5.2
・REALbasic 2008r1
・Xcode 3.0
Xcode用テンプレートをセットする
プラグインの作成にはXcodeを使用します。
Plugins SDKには、新規プロジェクトが作成し易いよう、テンプレートが用意されています。
これが使えるよう、セットアップします。
- REALbasic 2008 Release 1/Extras/Plugins SDK/Examples/Xcode Mach-O Template/内のREALbasic Mach-O Pluginフォルダ内に、Plugins SDKフォルダ内のGlue Code、Includesフォルダをコピーします。
フォルダをコピーせず、代わりにユーザパスを指定しようとしたのですが、(やり方が悪かったのか)うまくいきませんでした。
- REALbasic Mach-O Pluginフォルダを以下の場所にコピーします。
/Developer/Library/Xcode/Project Templates/
(注:Xcode 3から場所が変わっています。)
(注2:初出時は/Developer/Library/Xcode/Project Templates/Application/としていましたが、上記の方が分かり易いかもしれません。)
dylibをビルドする
プラグインの中身を作成します。
Xcodeで直接プラグインを作成することはできません。
dylib形式でビルドし、その後、変換することになります。
なお、ここでは動作確認が目的なので、Xcodeの設定はデフォルトのまま(つまり、テンプレートの設定のまま)としています。
以下のサンプルは、与えられた二つの値を合計して返すという、極めてシンプルなものです。
(ウィンドウに配置するコントロール系のプラグインではありません。)
- Xcodeを起動し、ファイル>新規プロジェクト...メニューを選択
- テンプレート選択ダイアログが表示されるので、REALbasic Mach-O Pluginを選択
- プロジェクトに名前をつける。ここでは「PluginTest」とする。
- PluginTest.cppを開き、(既に書き込まれているものを全て削除後)以下のコードをコピーする。
#include "rb_plugin.h" static int SumVals(int val1, int val2) { return val1 + val2; } REALmethodDefinition SumValsDefn = { (REALproc) SumVals, REALnoImplementation, "SumVals(val1 as integer, val2 as integer) as integer" }; void PluginEntry(void) { REALRegisterMethod(&SumValsDefn); }- ビルドする。
pbx形式に変換する
2008r1にはコンバータが付属していますが、うちではうまく動きませんでした。
PluginConverterの、App.PushIntoVirtualVolumeのitem.CopyFileTo( vvItem )がBus errorっぽい>なんで?
…と思ったら、本家Forumにコメントがありましたね、旧Plugins SDKのRB Plugin Converterを使えと。
- PluginTest.dylib(プロジェクトフォルダ/build/Development/にあります)を、以下の構成をもつフォルダにコピーする。
PluginTest Build Resources Mac Carbon Mach-O PluginTest.dylib- RB Plugin Converterを起動する。
- Convert Folder...ボタンを押し、PluginTestフォルダを選択する。すると、指定した場所にpbx形式ファイルが作成される。
- できたpbxをREALbsicのpluginsフォルダに移動する。
動作テストする
動くかどうか、テストします。
- REALbsicを起動する。
- Window1にPushButtonを置き、Actionイベントに以下を記述。
MsgBox Str(SumVals(3,5))- 実行する。
- PushuButtonを押す。ダイアログに8と表示されればOK。
おわりに
今回は基礎編ということで、まずは「プラグイン作成ルートの確定」について書き留めました。
ルートが確定すれば、内容に集中することができます。
内容(およびコントロール系のルート)については、次回以降あらためて触れてみたいと思います。
注)今回のサンプルはあくまで動作確認用で、配布を前提としたものではありません。(配布用とするにはいくつかの配慮が必要なようです。)
更新履歴
2008.02.29 「Xcode用テンプレートをセットする」のテンプレートの置き場所を変更
2008.02.24 新規作成
[Home] [MacSoft] [Donation] [History]