HSP : Hot Soup Processor ver2.61 / onion software 1997-2004(c)
HSP ver2.61の主な拡張点
HSP ver2.61は、ver2.6のリリース以降に報告された不具合の修正や追加モジュールを統合したもので、大幅な機能の追加や変更はありません。
HSP ver2.61は、ver2.6までのver2.xの資産をすべて継承した上で、より安全で安定した環境を入門者から上級者まで幅広く提供すべく開発されています。
ここでは、ver2.6から追加された機能、便利な情報などをまとめて紹介します。
何が変わったのか、どう便利なのかを具体的にポイントだけ説明しています。
詳しいことは、それぞれの命令リファレンスや、プログラムガイドをお読みください。
その他、互換性についての注意点は「ver2.61の変更点 」の項を参照してください。
各種制限の撤廃
2.6に残されていた制限や不具合をさらに撤廃しています。
gcopy命令で4の倍数サイズ制限、マクロ定義数やバッファの制限などをなくしています。
HSPCLのサポート
コンソールアプリケーションの作成が可能なHSPCLを標準で同梱しています。
GUIを使わない軽い処理や、WEBサーバー上でのCGIなどに応用が広がります。
各種DLLのアップデート
HSPEXTやHGIMGなど既存の拡張プラグインのアップデートが行なわれています。
HSPEXTには、回転拡大縮小を含む画像コピーを行なうgrect、grotateなどの命令群が追加されているほか、シリアル(RS232C)通信の細かなコントロールに対応しています。
HGIMGでは、Zバッファ対応などによりDirectX機能をより生かしたアプリケーションを作成可能です。
さらに新しく、ODBCを経由して各種データベースにアクセスするための拡張プラグインHSPDB.DLLが同梱されています。HSPCLとの連携など、様々な用途に利用できます。
HSP HELP Browserの同梱
ワンキーヘルプの参照にHSP HELP Browser(S.Programsさん作)を呼び出します。
より便利で快適なヘルプ閲覧や検索が可能になります。
スクリプトエディタの更新
初心者などに配慮して、起動ディレクトリの指定や、ソースフォルダを開く機能を標準スクリプトエディタに追加しています。
プリプロセッサの強化(上級者向け)
マクロでの制限を緩和したほか、__HSPVER__、__TIME__、__DATE__、__LINE__、__FILE__などの特殊展開マクロを追加しています。
また、標準命令を「命令@hsp」という名前空間で表現できるようになりました。これにより、標準命令をマクロで置き換えつつ、もとの機能を呼び出すことも可能になります。
自動フォーカス移動時の更新
[TAB]キーによる自動フォーカス移動時に入力ボックスの内容を全選択するようになりました。(objmode命令により解除することも可能です。)
実行時ディレクトリ移動の設定(上級者向け)
作成した実行ファイルが起動する際に、カレントディレクトリを移動させるかどうかをオプションで選択できるようになりました。
ショートカットからの起動を調べるなど、特殊な場面で役立ちます。
アップデートガイド
以前のバージョンがすでにインストールされている場合は、上書きせずに、
違うディレクトリにインストールするか、以前のファイルをすべて削除してから
新しいバージョンをインストールしてください。
(前のバージョンのファイルと混在しないのであれば、必ずしも以前のバージョンを削除する必要はありません。)
ver2.6をインストーラー(hsp26inst.exe)からインストールしている場合は、「アンインストール」メニューから削除した後、ver2.61を再インストールすることを推奨します。
以前のバージョンからの変更点は、このマニュアルに履歴が記載されているほか、
プログラミングマニュアルの目次に、
[New]がついている項目は、解説が追加または変更されていることを示しています。
ver2.61の変更点
ver2.61は、以前のバージョンに対して次のような拡張・修正を行なっています。
このバージョンは、なるべくver2.xの上位互換で動作するように作られていますが、
一部の機能で非互換になる可能性があります。
このアップデートによって、ver2.xで使用していたソーススクリプトが正常な動作しなくなる可能性は以下のものがあります。
-
新規に追加された命令/マクロの名前と、ユーザーがつけた変数の名前が重なるとエラーが発生します。
新規キーワードで名前の衝突が起こりやすいものとしては、loadlib関連命令(ll〜)、
for,next,while,wend,do,untilなどの新規マクロ、getpath,sysinfoなどの新規命令
があります。
これらのキーワードと同じ、変数名やラベル名があった場合には、別な名前に
置き換えることで正常に動作をさせることができます。
過去のスクリプトが、新規のマクロ名(while,do,switch,case等…)と衝突して動作しない場合には、
スクリプトエディタの「HSPメニュー」から、「HSP拡張マクロを使用する」のチェックを外してみて
ください。新規マクロが定義されなくなり、HSP ver2.55互換で動作するようになります。
-
変数のメモリ領域保護のチェックが厳しくなったために、以前のスクリプトで
問題が発覚しなかったものがエラーとなる場合があります。
文字列バッファのオーバーフローなどが発生する恐れがあるスクリプトは、
ver2.61ではより多くの領域を確保するなどの修正を行なう必要があります。
また、dirlistやメモリノートパッド系(note〜)命令の動作が以前と一部異なるため
バッファオーバーフローが起こりやすくなる可能性があります。
-
以前のバージョンのdirlist命令で取得されていたファイル名、「.」および「..」は、リストから除外されるように
変更されましたのでご注意下さい。以前は、Windows9xとWindowsNT,2000,XP系で動作に違いがあったものを修正したものです。
-
#module命令で指定されるモジュール名の規則がより厳密にチェックされるようになりました。
このため、スペースや記号を含むモジュール名はエラーとして報告されます。
-
ver2.61以前に出力された「start.ax」などのオブジェクトファイルは、
ver2.61のものと互換性がありません。
必ずソーススクリプト(asファイル)をコンパイルし直して実行させるようにしてください。
-
mesbox命令で配置される入力ボックスの外観が2.6と異なっています。2.6では、黒い枠線が表示されていましたが、2.61では削除されています。これに伴って、外観の変更をするためのオプションがobjmode命令に追加されています。
ver2.6から、ver2.61までの更新履歴は以下の通りです。
ver2.61a
- ドキュメント「初心者のためのHSP入門」の記述を一部修正しました。
- noteload命令のヘルプ記述ミスを修正。
- hgimg.dll版のfvdir命令パラメーター指定が逆になっていたのを修正。
- grect命令、gsquare命令の単色塗りつぶし色で赤と青の輝度が逆になっている不具合を修正。
ver2.61
- システム定義マクロ、__FILE__内の\記号を\\に修正。
- 数式で使用するカッコのネスティング制限を最大32重までに修正。
- デバッグウインドゥの操作によりシステム変数statの値が破壊される現象を修正。
ver2.61 RC2
- 実行ファイル作成時のランタイムファイルをソースフォルダからも検索するように修正。
- マクロ内でctypeマクロを使用した場合にエラーが出る不具合を修正。
- 拡張プラグインtype$202のAPIで、HspFunc_prm_getv、HspFunc_getobjのエラーチェックを強化。
- コマンドライン引数(cmdline)に1024文字以上を渡した場合にエラーが発生する不具合を修正。
- dirlist命令実行時のシステム変数statが実際のファイル数と違うことがある不具合を修正。
- RC1でchgdisp命令による解像度変更が正常に行なわれなかった不具合を修正。
- noteadd命令で正常に空文字列("")が追加できないことがある不具合を修正。
- 横幅が4の倍数でないとバッファへのMAG画像展開が崩れる不具合を修正。
- hspdef.asのマクロすべてをglobal指定に修正。
- aplstr命令において全角文字がWindows2000以降で使用できない不具合を修正。
- grotate命令でコピー元Y座標の指定が正しく反映されない不具合を修正。
- その他、マニュアルの不具合を修正。
ver2.61 RC1
- コンソールモード(HSPCL)のnoteadd命令が通常時と同様に動作しなかった不具合を修正。
- objmode命令にオブジェクトのスタイルに関するオプションを追加。
- プリプロセッサ内の標準予約キーワードはマクロ展開しないように修正。
- マクロ定義数の制限を撤廃しました。
- 拡張プラグインとして指定された関数のエラー表示が間違っていたのを修正。
- 横幅が4の倍数でないとバッファへのJPEG画像展開が崩れる不具合を修正。
- 不正なファイルエラー発生時にシステムエラーが起こる不具合を修正。
- chgdisp命令による解像度変更時にAPIでCDS_FULLSCREENを渡すように修正。
- dim命令の要素パラメーター全てを省略した場合は、デフォルト値となるように修正。
- memfile命令のサイズ指定が0の場合、サイズが0となってしまう不具合を修正。
- 特殊なファイル指定「MEM:」「DPM:」を小文字でも記述可能に修正。
- スペースを含むディレクトリ以下でHSPCLの実行に失敗する不具合を修正。
- スクリプトエディタの検索や置換ダイアログが重複して表示される不具合を修正。
- スクリプトエディタのオプションに起動ディレクトリ設定を追加。
- WindowsXP上のスクリプトエディタで検索やワンキーヘルプの取得に失敗する不具合を修正。
ver2.61 beta4
- プリプロセッサの特殊展開マクロとして__HSPVER__、__TIME__、__DATE__を追加。
- スクリプトエディタ起動時のデフォルトディレクトリをマイドキュメントに変更。
- スクリプトエディタに「ランタイムマネージャ起動」「ソースフォルダを開く」メニュー項目を追加。
- #includeプリプロセッサ使用時に__FILE__マクロの内容がおかしくなる不具合を修正。
- 大量のプリプロセッサマクロ登録時に失敗する不具合を修正。
- 規定文字数を超える長いキーワード文字列はプリプロセスの段階で省略するように修正。
- beta3版でコンパイル時の1行あたりの認識文字数が正常に拡張されていなかった不具合を修正。
- プリプロセッサマクロ引数に"\r"を指定した場合に起こる不具合を修正。
- EXE実行時に起動時のカレントディレクトリを変更しないオプションを追加。
- β2でウィンドウXサイズが4の倍数でない時にBMSCR構造体のXサイズが正常に更新されなかった不具合を修正。
- デバッグウインドゥのMCI選択時にアプリケーションエラーが発生する不具合を修正。
- memcpy命令でメモリ領域の重なるコピー先をサポート。
- text命令によるメッセージ遅延表示の際に文字化けすることがある不具合を修正。
- dim命令の要素パラメーター全てを省略した場合エラーとなるように修正。
- hspext.dllに画像処理用の命令、grect、grotate、gsquareを追加。
- コンソール版(hspcl)でプラグインの初期化に失敗することがある不具合を修正。
- コンソール版(hspcl)で標準入力取得時(input)の文字数をシステム変数strsizeに保存するように修正。
- コンソール版(hspcl)の標準入力の設定をバイナリモードに修正。
- HSP標準の予約キーワードをmes@hspのような名前空間となるように修正。
- HSP HELP Browserを更新。
ver2.61 beta3
- beta2版でスクリプトエディタの検索、置換機能がWindowsXPで正常に動作しなかった不具合を修正。
- beta2版でキーワード後にカーソルがある状態からワンキーヘルプ検索に失敗する不具合を修正。
- dirlist命令の実行時にシステム変数statが更新されないことがある不具合を修正。
- sndload命令で長いパス名を指定した際に正常に再生されないことがある不具合を修正。
- onexit命令による終了処理中にwait/await命令以降が実行されない不具合を修正。
- mesbox命令でスタティックテキストを配置した際にオブジェクトIDがシステム変数statに格納されない不具合を修正。
- マクロ展開後のコンパイル時に1行あたり32767文字までを認識するように修正。
- プリプロセッサの特殊展開マクロとして行番号とファイル名を表す__LINE__、__FILE__を追加。
- 2次元以上の文字列型配列変数への代入時にバッファオーバーフローが検出されないことがある不具合を修正。
- ヘルプやドキュメントの間違いを修正。
ver2.61 beta2
- 新しいヘルプマネージャーとしてHSP HELP Browser(S.Programs)を同梱しました。
- 暗号化されたDPMファイル内からの読み込みに失敗する不具合を修正。
- グローバル定義を示す「変数@」の記述が正常に展開されないことがある不具合を修正。
- 「変数@」の記述で変数名に日本語を使用した際にエラーとなる不具合を修正。
- 変数名に日本語を使用した際に一部の文字がエラーとなる不具合を修正。
- 無限ループ回避のための1行あたりのマクロ展開数チェックを100回から1000回に変更。
- dirlist命令で64Kを超えるファイルリストを取得した際にバッファの自動拡張に失敗する不具合を修正。
- notesel命令を実行する前にメモリノートパッド操作を行なうとエラーになるように修正。
- noteadd命令でバッファ自動拡張サイズが改行を考慮していない不具合を修正。
- noteadd命令を空のバッファに対して行なった場合に、空行ができてしまう不具合を修正。
- exist命令などのパス名指定が長い場合に取得に失敗することがある不具合を修正。
- TABキーによるフォーカス移動時に入力ボックスの内容を選択状態とするように修正。
- onexit命令による終了処理中にエラーが無視される不具合を修正。
- onexit命令による終了処理中にstop命令が実行されるとCPU負荷が100%になる不具合を修正。
- 数字を含む命令のワンキーヘルプ呼び出しでキーワードが認識されないことがある不具合を修正。
- bmpsave命令で不正なファイルが作成されることがある不具合を修正。
- gcopy命令のコピー先のウィンドウXサイズが4の倍数でない時に正常に実行されない不具合を修正。
- ver2.61beta1で#packopt命令が正常に使用できなかった不具合を修正。
- exec命令実行時のエラーが検出されないことがある不具合を修正。
- str命令での16進数変換時に10桁以上を指定することができない不具合を修正。
- gcopy命令でサポートされない異なるパレットモード間でのコピーをエラーとするように修正。
- strmid命令で取得する文字列がバッファオーバーフローを起こす不具合を修正。
- input、mesbox命令の黒い枠線スタイルがデフォルトでOFFになるように修正。
ver2.61 beta1
- ワンキーヘルプ呼び出し時にプリプロセッサ命令の記号(#)を付加するように修正。
- デバッグウインドゥの変数名をソートして表示するオプションを追加。
- デバッグウインドゥに変数名が表示されないことがある不具合を修正。
- ctypeマクロ引数の後にスペースを入れると正しく展開されないことがある不具合を修正。
- 履歴付き実行ログのコマンド名が正しくなっていない不具合を修正。
- 拡張プラグイン作成時のHSPEXINFO構造体で、pstrおよびstmpが取得できない不具合を修正。
- 拡張プラグイン作成時のHSPEXINFO構造体で、HspFunc_val_realloc関数で型が文字列になる不具合を修正。
- マクロバッファサイズをほぼ無制限に修正。
- 実行ファイル内部のstart.axを読み出す際のセキュリティチェックを強化。
- HSPCL(コンソール版)を標準として統合。
- HSPCL(コンソール版)との切り替えメニューをスクリプトエディタに追加。
- hspdb.dll(データベースアクセスプラグイン)を標準として同梱。
- hspext.dllを更新。
[一番上に戻る]
[前のメニューに戻る]
Go to ONION software HOMEPAGE