DLLの組み込み方

DLLの作り方ではありません(^^;

開発キットの「熟練者向けキット\開発環境」のサンプルが基。

もどる  トップページへ


基本的な使い方

マニュアルにも書いてあるのですが一応。仮にSample.dllで。

  1. Sample.dllを「Run\DLL」、Sample.hllを「HLL」へコピー。

  2. Sys42IDEでプロジェクトを開き、左ペインの「HLL」の右クリックメニューやメニューバーの「ファイル」から「HLLを追加」を開く。 デフォルトで「HLL」フォルダが開くのでSample.hllを選択。

    「HLLエイリアス名」はソースからDLLを呼び出すときに使用する名前。 拡張子を除いた「Sample」というのが出ているはずなのでそのまま「OK」。

  3. 「実行」のSystem40.iniを開く(直接開くなら「Run\System40.ini」)

    「LoadDLL」という項目にSample.dllを加える。 他に何も加えていない場合は次のように。 ; DLLファイル設定
    LoadDLL = {
    "SACT_DLL.inc",
    "Sample.dll",
    }

これで組み込みは終わり、後はソース上でSample.Load();などとすればOK。

HLLの設定自体はプロジェクトファイルに // HLL一覧
HLL = {
"(拡張子を除いたDLLファイル名)", "(エイリアス名)",
}
という形で書かれているので、直接編集したりインクルードとして使う場合はこの辺をいじればよさげ。

もどる  トップページへ


インクルードファイルを使ってみる

インクルードファイル(.inc)を利用するとロード設定などを別ファイルにすることが可能。 わかる方はC言語のヘッダ読み込み(#include)、あれをイメージしてもらえれば。 SDKについているHLLライブラリにインクルードファイルがついているのでちょいこれで試しに(とりあえずInputStringで)

  1. 「InputString」をフォルダごと「Source」へコピー(さすがにサンプルはいりませんが)

  2. IDEからでも直接でもいいのでプロジェクトファイルを開く。

  3. 「Source」という項目にInputString.incを加える。 他に何も加えていない場合は次のように。 // ソースコード一覧
    Source = {
    "game.inc",
    "InputString\InputString.inc",
    }

  4. プロジェクトファイルを保存してIDEでプロジェクトを再読込(設定や使用エディタによってはIDEが感知して選択が出る)。 エラーが出ず、「Hll」にInputStringが追加されていれば成功。

  5. この場合でもSystem40.iniの編集は必要なので注意。

InputString.incの中身について。 「SystemSource」は、「Source」で指定されているファイルよりも優先してコンパイルされるファイル。 「Source」項目でインクルードしていたとしても、一度全て展開してから優先順が決定されるようなので安心。 また、「CopyToDLL」が設定されているのでビルドするとInputString.dllが「Run\DLL」へコピーされる。

この他にも、インクルードファイルはソースや実行時のDLLロード設定にも使えるのです。 プロジェクトファイルの「Source」に設定されているgame.incや、System40.iniの「LoadDLL」に設定されているSACT_DLL.incなどがそう。 自分で追加したソースやDLLは設定を別ファイルにしておくと整理しやすいのでおすすめ。 実際、アリスソフトのゲームでもそうなってますし。

一番上へ  もどる  トップページへ


冒険者の宿 <管理人:TS