Feed on
Posts

このページは、Creating a dylib to use with REALbasicに書かれていることを、簡単にまとめたものです。詳しくは原文をご覧ください。

dylibの作成

  1. Xcodeを起動(Mac OS X 10.5.1上でXcode 3.0を使用)
  2. 「ファイル」メニューより「新規プロジェクト…」を選択
  3. 「空のプロジェクト」を選択して、「次へ」ボタンをクリック
    dylib00.jpg
  4. プロジェクト名を設定(ここでは”SampleDylib”とします)
    選択ボタンをクリックして、プロジェクトの保存先を指定(ここでは、書類フォルダにします)
    「完了」ボタンをクリック
    dylib01.jpg
  5. 「プロジェクト」メニューより「新規ターゲット…」を選択
    「Carbon」の中の「Dynamic Library」を選択
    「次へ」ボタンをクリック
    dylib02.jpg
  6. ターゲット名を入力(ここでは”SampleDylib”とします)
    「完了」ボタンをクリック
    dylib03.jpg
  7. 「ファイル」メニューより「新規ファイル…」を選択
    「Carbon」の中の「C File」を選択
    「次へ」ボタンをクリック
    dylib04.jpg
  8. ファイル名を設定(ここでは”SampleDylib.c”とします。)
    「同時に”**********.h”ファイルも作成」にチェックが入っていることを確認して(ここでは、**********の部分はSampleDylib)
    「完了」ボタンをクリック
    dylib05.jpg
  9. Xcodeのグループとファイルの「SampleDylib.c」を選択
    (コードが表示されていない場合は、右上「エディタ」アイコンをクリック)
    dylib06.jpg

    以下のコードを追加

      #include <string.h>
    
      int addFunction( int a, int b ) {
          return a + b;
      }
    
      int stringLength( char *str ) {
          return strlen(str);
      }


    dylib07.jpg

  10. 「ファイル」メニューより「保存」を選択して、ファイルの保存。
    「ビルド」アイコンをクリックまたは「ビルド」メニューより「ビルド」を選択して、ビルド。
  11. 問題なければ、プロジェクトファイルがある場所の「build」 ->「Debug」フォルダ内に拡張子がdylibの「SampleDylib.dylib」というファイルが作成されています。
    dylib08.jpg

    (XcodeのプロジェクトウィンドウでSampleDylib.dylibを選択して右クリックで「Finderで表示」を選ぶことで、すばやく表示することができます)

REALbasicからの利用

  1. REALbasicを起動 (Mach-Oを作成できるのは5.5以降のバージョン。ここでは2007r5を使用)
    「File」メニューより「new project」を選択しDesktop Applicationを作成
  2. 「Project」メニューより「Build Settings…」を選択し
    Mac OS X Universal Binary、PowerPC, Intelのいずれかを選択
  3. 「File」メニューより「Save」を選択しプロジェクトを保存。(ここでは”Test Dylib.rb”にします。)
  4. プロジェクトの保存先に、Xcodeで作成した「SampleDylib.dylib」ファイルをコピー。
    dylib09.jpg
  5. Project windowのAppを選択して
    Event HandlersのOpenに
    以下のコードを追加

      #if DebugBuild then
        CONST dylibLocation = "@executable_path/../../../SampleDylib.dylib"
      #else
        CONST dylibLocation = "@executable_path/SampleDylib.dylib"
      #endif
    
      Declare Function addFunction lib dylibLocation (a as integer, b as Integer) as Integer
      Declare Function stringLength lib dylibLocation (s as CString) as Integer
    
      msgBox "5 + 2 = " + str(AddFunction(5,2))
    
      msgBox "The length of ""asdf"" is " + str(stringLength("asdf"))


    dylib10.jpg

  6. Runアイコンをクリックするか、「Project」メニューより「Run」を選択
    アプリケーションが起動して
    dylib11.jpg
    dylib12.jpg
    のように表示されます。
  7. 問題なければ、Buildアイコンをクリックするか、「Project」メニューより「Build Application」を選択して、アプリケーションを選択。
    出来上がったアプリケーションをFinderで選択して右クリックでパッケージの内容を表示で、「Contents」 ->「MacOS」の中にSampleDylib.dylibをコピー
    dylib13.jpg

2 Responses to “Xcodeでのdylib作成と、REALbasicからの利用”

  1. Pencil より:

    素晴らしいですね! とても興味深いです。
    新しい言語をゼロから学ぶ場合に、Hello worldから始めないといけないのかと思うと先が見えなくて、なんだか二の足を踏んでしまいますが、こんなふうによく知っている言語からちょいちょいと利用できるかと思うと、やってみたいな、という気になります。 :grin:

  2. admin より:

    Pencilさん、ご無沙汰してます。

    プラグインもXcodeを使って作成できますが、公開するのでなければ、ダイナミックライブラリの方が簡単に試せるのではないかと思います。

    私はlibusb.dylibを取り込んだものを作成しているのですが(公開できるレベルにはなっていませんが)、memoryblockを使えば、関数から複数の値を戻すこともできますし(これについてはなるべく早く追記します)、後は工夫次第ではないでしょうか

Leave a Reply

WordPress Smileys

:smile_wp: :biggrin_wp: :sad_wp: :surprised_wp: :eek_wp: :confused_wp: :cool_wp: :lol_wp: :mad_wp: :razz_wp: :redface_wp: :cry_wp: :evil_wp: :twisted_wp: :rolleyes_wp: :wink_wp: :exclaim_wp: :question_wp: :idea_wp: :arrow_wp: :neutral_wp: :mrgreen_wp: