HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2008
1107
ますHMM.DLLを使うと正常に終了しない3解決


ます

リンク

2008/11/7(Fri) 20:52:08|NO.20678

「拡張プラグイン・ツールの紹介」で紹介されているHMM.DLLを用意して、
以下のスクリプトを実行すして、×ボタンを押して終了すると
「問題が発生したため、hsp3.exe を終了します。 ご不便をおかけして申し訳ありません。」というダイアログが出て正常終了しません。
どうすれば正常に終了するようになりますか?
OSはWindows XP DirectXのバージョンは9.0cです。

#include "hmm.as" DMINIT DMEND



この記事に返信する


レヴィン

リンク

2008/11/7(Fri) 22:29:29|NO.20680

onexitを使ってDMENDなど、このプラグインの各機能の解放処理を自前で行って下さい。



レヴィン

リンク

2008/11/7(Fri) 22:38:11|NO.20681

さっきの回答ではさすがに説明不足かと思い、追記。

上のスクリプトでは、俺の環境ではエラーは出ません(普通に終了できる)。

#include "hmm.as" DMINIT *main await 16 goto *main DMEND
このスクリプトで×ボタンで閉じるとフリーズします(試すなら自己責任で)。

あと、解放処理についてですが、DMENDなどで解放したら、endでソフト自体を落して
下さい。
どうして必要かはマニュアルに書いてあります(onexitのところに)。



ます

リンク

2008/11/7(Fri) 23:16:48|NO.20683

回答ありがとうございます。色々と試してみて解決しました。
上のスクリプトは問題の起こる必要最低限のスクリプトで、同じ問題が起こるスクリプトでは開放処理は行っていました。
上のスプリクトを

#include "hmm.as" DMINIT DMEND onexit *exit stop *exit end


#include "hmm.as" DMINIT onexit *exit stop *exit DMEND end
にすると正常に終了するので原因を探したところ、
「メインウィンドウ以外が×ボタンで閉じられたらそのウィンドウをgselで消す」という処理を行うために
onexitのジャンプをgosubで行っていたことが原因だったようです。

#include "hmm.as" DMINIT onexit gosub *exit stop *exit DMEND end
だと問題が発生しました。


どうでもいいですが、

onexit gosub *exit
のgosubを命令語に変えるとコンパイル時にエラーが出るものと実行時にエラーが出るものがありました。



ONION software Copyright 1997-2023(c) All rights reserved.