特定のシチュエーションでなくても汎用的に利用できるモジュール命令等のコードがあり、
ソフトを作成するたび毎回のように利用するのだが、コピペであろうとも毎回記述するのが面倒。
ヘッダ(AS)ファイルとしてインクルードさせるのすら書くのが面倒だという方は、
commonフォルダに「userdef.as」という名前のヘッダ(AS)ファイルを作成し、
その中へ毎回のように利用するコードを入れておくとアラ不思議、「userdef.as」をインクルードせずとも
「userdef.as」の中へ書いたものがメインスクリプトの前に実行されるようになります。
インクルードせずとも利用できるのはHSP3以降のヘッダファイル「hspdef.as」に
「userdef.as」をインクルードするよう記述されているためで、
「userdef.as」が存在しなくてもエラーにはなりませんが、
「userdef.as」をインクルードせずに使用する場合は拡張マクロを使用する設定にする必要があります。
拡張マクロを使用する設定にしている以上は、毎度インクルードされてしまうので、
汎用的ではないものを書いてしまうと、そのコードが不要な度に処理しないような作りにする必要があり、
使いづらいものとなりかねません。
「userdef.as」へ入れておくのは、モジュールやDLL呼出命令・関数程度に留めておくべきです。
HSP3.1β2からは、定義しても利用していないモジュールやDLL呼出命令・関数は、
最適化機能によりコンパイル時に除去されますので、
使ってない余計なコードが入ってしまう心配はしなくてもよいでしょうが、
HSP3.0〜3.1β1を利用している方は肥大化に留意する必要があるかもしれません。
バグも修正されることですし、最新版にアップデートすることをお勧めします。
現行のバージョン2の最新であるHSP2.61以前だと使用できない訳は、
「hspdef.as」に「userdef.as」をインクルードさせてないからであり、
インクルード方法がバージョン2で利用できていた#include命令を利用していないためです。
もし、commonフォルダに「userdef.as」を作成しておき、
「hspdef.as」の先頭近くに「#include "hspdef.as"」と記述すれば、
HSP3同様に「毎回メインスクリプトにインクルードさせなくても利用できる」ようになります。
但し、先に述べたようにコンパイル時の最適化機能が備わってませんので、
「userdef.as」にコードを書けば書くほど使ってなくてもEXEファイルサイズも大きくなってしまいます。
注意すべき点としてはさらに、「hspdef.as」の内部を書き換えてしまうので、
何かのタイミングで標準の「hspdef.as」に上書されてしまわないようにしなければなりません。
|