- お知らせ -
  • 当wikiのプログラムコードの表示を直してみました(ついでに長い行があると全体が下にぶっ飛ぶのも修正)。不具合があればBBSまでご連絡下さい。

はじめに Edit

Squirrelを使うには、DLL化するのが手っ取り早いと思われるので、DLL化(squirrel.dllの作成)をしてみようという話。

久々に、VS.net弄ったので、手こずったけどなんとかなった。

実際に、このDLLがちゃんと使えるかは、今検証中です。

squirrel.dllの作り方 Edit

以下では、squirrel と sqstdlib のプロジェクトを両方まとめ、1つのDLL(squirrel.dll)にしてしまっています。

以下、まとめた squirrel.dll の作り方。
VS.net 2005 proでコンパイルを確認。

適当なディレクトリに、squirrel_2.1.1_stable が解凍されているとして、

  1. squirrel_dll ディレクトリを作る
  2. squirrel\squirrel.dsp を squirrel_dll ディレクトリにコピーする
  3. squirrel_dll\squirrel_dll.dsp に名前を変えておく
  4. squirrel_dll\squirrel_dll.dsp を VS.netで開く(新しいプロジェクトに変換する)
  5. ファイル→追加→既存のプロジェクト で、 squirrel_dll を追加
  6. プロジェクト名が、squirrel になっているので、squirrel_dll に変更
  7. squirrel_dll の関連づけられたファイルを一旦全部削除
  8. 以下のようにしてファイルを追加
    1. プロジェクト → 新しいフィルタ で、フィルタを作って、
      ソリューションエクスプローラーで、フィルタ名を squirrel に変更
    2. ソリューションエクスプローラーで、フィルタ squirrel を選択して、
      右クリック→追加→既存の項目 で、..\squirrel ディレクトリ の .h と .cpp を全部追加
    3. 同様に、プロジェクト → 新しいフィルタ で、フィルタを作って、
      ソリューションエクスプローラーで、フィルタ名を sqstdlib に変更
    4. ソリューションエクスプローラーで、フィルタ sqstdlib を選択して、
      右クリック→追加→既存の項目 で、..\sqstdlib ディレクトリ の .h と .cpp を全部追加
  9. プロジェクト→プロパティで、
    • 構成プロパティ→全般→構成の種類 を、「ダイナミック ライブラリ (.dll)」に設定
    • 構成プロパティ→全般→出力ディレクトリを、「..\bin」に設定
    • 構成プロパティ→リンカ→全般→出力ファイルを、「$(OutDir)\squirrel.dll」に設定
  10. DLL用に関数をexportするために、squirrel.h の SQUIRREL_API に __declspec(dllexport) を追加。
    パッチ
    - #define SQUIRREL_API extern
    + #define SQUIRREL_API extern __declspec(dllexport)
  11. あとは、ビルド→squirrel_dll のビルドで、
    bin\ に、348KBの squirrel.dll ができていたら成功ー

面倒なら、フィルタは作らんでもいいです。

普段から、VC使っている人は見なくてもできると思う。

squirrel.dllの配布 Edit

コンパイル面倒な人用に、配布したいけど、ちょいまち。
このDLLでうまくいくか確認中なので。


  • __declspec(dllexport)の項を追加。
    exportできてなかた orz -- TOBY 2007-06-14 (木) 21:38:24
  • ほしいよう -- 2008-03-27 (Thu) 20:25:13


Front page   Edit Freeze Diff Backup Upload Copy Rename Reload   New Pages Search Recent changes   Help   RSS of recent changes
Last-modified: 2008-03-27 Thu 20:25:13 JST (3466d)