コンパイルに伴う不具合

Last-modified: 2015-03-15 (日) 02:54:49

hspda.dllのバージョン違いによりError 2が起こる問題

555 名前:名無しさん@ピンキー[sage] 投稿日:2012/03/02(金) 19:16:41.62 ID:4Vh1y6Pe

>フィート情報でError 2

hspda.dllのバージョンと定義用記述の不整合でエラーが起きてた。

どうやらこのDLLだけは、既存の命令定義記述では新しい方のDLLには適合しないらしい。

エディタからコンパイル+実行する時と、exeとして実行する時とで異なるバージョンのhspda.dllが呼ばれるため、

これがエラーの原因になる。

既存の命令定義記述: Elona同梱の古いhspda.dllに適合

エディタから実行すると、HSP同梱の新しいhspda.dllが呼ばれる→命令実行時にError 1が起きて固まる。

定義ファイルhspda.asを#includeする: 新しいhspda.dllに適合

exeから実行すると、古いhspda.dllが呼ばれる→命令実行時にError 2が起きて終了。

なお、今回からzipアーカイブのフォルダ構成を変更。exeとreadmeをrootに置くようにした。

(URL省略)

HSPのバージョンを新しくしてコンパイルすると、HSPDAプラグインが以前のものに対応していないためエラーが出る
新しくした場合は必ずDLLも新しいものを同梱するようにする

64bit版でelochatが閉じられない問題

http://www.onionsoft.net/hsp/v33/doclib/history.txt

2009/10/19 3.2a

Windows Vista,及び7の64bit(x64)版においてHSP実行時のウインドゥを閉じることができなくなる(end命令による終了を除く)不具合を修正

多分新しいバージョンでコンパイルすれば直るはず

ウィンドウサイズを可変にするためID1のウィンドウを使用しているので

#packopt
とでもスクリプトの先頭に追加してID0のウィンドウを非表示にしておく

callマクロの展開がうまくいかない問題

ttp://elona.squares.net/forum/viewtopic.php?f=7&t=4779

・譲渡されたソースをそのままHSP 3.21でコンパイルしようとするとエラーが発生します

 原因はHSP 3.2から追加されたラベル変数に関連する物で一つ上の記事で紹介されているページにて記載されている

 パラメータを設定してgosubを行う部分を#defineを使用してcallに置き換えている部分にあります

 対処はinit.hsp 4261行目で

 #define global call(%1,%2=0) procRef%2: gosub *%1

 と定義されている部分を

 #define global call(%1,%2=0) procRef%2: gosub %1

 に変更し、「全ての」callマクロ使用部分の第一パラメータの先頭に*を追加すればコンパイルできるようになります

 例:call act_melee を call *act_melee に変更

前も紹介したが重要なので一応再掲
一括置換が行えるエディタかツールを用いると良い

too many macro parameter

http://www.onionsoft.net/hsp/v33/doclib/history.txt

2010/01/29 3.21RC1

BT#230: #defineプリプロセッサの引数によりクラッシュすることがある不具合を修正(lagwn)

HSP3.3で配布ソースをコンパイルすると#Error: too many macro parameterと表示されてコンパイルが通らない
おそらくこの修正ではないかと思うが、マクロの展開が引数を勝手に補完しないようになったようだ

init.hsp 1350行目付近 cAiItem → cAiItem(%1)
init.hsp 2580行目付近 mefOwner → mefOwner(%1)
init.hsp 2580行目付近 mefRef → mefRef(%1)
init.hsp 2580行目付近 mefRef2 → mefRef2(%1)
init.hsp 3170行目付近 sp → sp(%1)
material_data.hsp 65行目 matLv → matLv(%1)
material_data.hsp 66行目 matRare → matRare(%1)
material_data.hsp 67行目 matPic → matPic(%1)
と、手動でマクロのパラメータを付けておく

old deffunc expression

HSP2系での#deffuncの書式を使用していると警告が出る

#deffunc
警告が出るだけで特に致命的な影響は出ないので気になるなら程度で

逆コンパイルソース