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


HSPTV!掲示板


未解決 解決 停止 削除要請

2023
0731
ze-narun命令が時々正常に動きません3未解決


ze-na

リンク

2023/7/31(Mon) 10:32:47|NO.99827

以下の質問スレッドのために実行スクリプトを切り替えるvsave/vload/runの確認サンプルを
作っていたのですが、オブジェクトファイル(axファイル)を実行するrun命令が時々正常に動作しません。

http://hsp.tv/play/pforum.php?mode=all&num=99806
拡張機能の追加方法

runは古くからある命令のようですが、使用方法などに問題がありますでしょうか?
ヘルプを見ましたが付属サンプルはありませんでした(runの文字列検索結果のみ)
HSPランタイムの場所とか気にする必要があったりしますか?

解決方法を教えていただけると助かります。

-----
run命令後の動作には以下のような症状があります(HSP3.7beta5にて確認)

・正常にaxファイルが起動して動作する(問題なし)
・ウィンドウ消去後フリーズして落ちる
・ウィンドウが起動してフリーズ後に落ちる
・ウィンドウが起動するが文字のみ表示されない
・内部エラーが発生しました(38)表示後にフリーズ(38:外部DLL呼び出し失敗)
・バックグラウンドにexeファイルが残る(タスクマネージャで確認)

-----
確認サンプルスクリプトは以下となります。run1main.exeを実行してください。
事前にhsp/ax/exeファイル作成とdllを準備する必要があります。

run1.hspは「オブジェクトファイル作成」と「実行ファイル自動作成」を
run2.hsp/run3.hspは「オブジェクトファイル作成」を行ってください。
これで、run1main.exe、run1.ax、run2.ax、run3.axが生成されます。

hspda.dllをexe実行フォルダに置いてください(vsave/vload用)

run1.hsp

#include "hspda.as" #packopt name "run1main" exist "hspda.dll":if strsize<0:dialog "no hspda.dll":end onexit *lbl_end exist "var.bin":if strsize>0:vload "var.bin" mes "[run1 - メインメニュー]" mes "a="+a+" b="+b+" c="+c+" s="+s+" f="+f button "run2-本家",*btn_on1 button "run3-拡張",*btn_on2 button "end",*lbl_end stop *btn_on1 f="run1 btn1":b++ vsave "var.bin":run "run2.ax" stop *btn_on2 f="run1 btn2":c++ vsave "var.bin":run "run3.ax" stop *lbl_end exist "var.bin":if strsize>0:delete "var.bin" end

run2.hsp

#include "hspda.as" vload "var.bin" mes "[run2 - 本家]" a=456:s="honke" mes "a="+a+" b="+b+" c="+c+" s="+s+" f="+f button "run1-menu",*btn_on1 stop *btn_on1 f="run2 btn1":b++ vsave"var.bin":run "run1.ax" stop

run3.hsp

#include "hspda.as" vload "var.bin" mes "[run3 - 拡張機能]" a=123:s="exte" mes "a="+a+" b="+b+" c="+c+" s="+s+" f="+f button "run1-menu",*btn_on1 stop *btn_on1 f="run3 btn1":c++ vsave"var.bin":run "run1.ax" stop



この記事に返信する


nennneko5787

リンク

2023/7/31(Mon) 12:23:00|NO.99829

hsp3.6にて動作テストをしましたが、以下の症状が発生しました。
・run2-本家 で run1-menu に戻ろうとするとフリーズ
・その後、run1-menu で run2-本家 や run3-拡張 に移動しようとするとフリーズし、強制終了する
・run2-本家 に移動したあと、 run3-拡張 に移動するとフリーズし、強制終了する

以下は独り言なので無視してもらって大丈夫です。

もしかしたらこれ、var.binの生成・読み込みが上手くいっていないかもしれない でもよくわからない



沢渡

リンク

2023/8/1(Tue) 16:09:29|NO.99838

試しに#include "hspda.as"とvsaveとvloadをすべて削除してやってみましたが、
やはり仰るような症状が発生しました。
(当方はHSP3.6)
run命令に不具合があるとしか思えないですね。



ze-na

リンク

2023/8/1(Tue) 21:23:15|NO.99839

>nennneko5787 さん
>沢渡 さん

動作テストありがとうございます。

症状はバラバラですが切り替わりのタイミングに発生している気もします。
前ウィンドウの落ちるタイミングも関係しているかもしれません。

vsave/vloadと切り離してもrun不具合に関連性はなさそうですね。

>zrs90(5さい) さん

情報ありがとうございます。

回答サンプル制作でハマるとは思っていなかったので、
現在のログ記事をきちんと調査していませんでした。すみません。

Dripさんの記事を教えてくださりありがとうございます。

-----
Dripさん、nennneko5787さん、沢渡さんなどの確認結果も踏まえてrun命令の検証結果を
さらにまとめてみました(HSP過去バージョンフル稼働です。。)

■run命令によるフリーズなどの不具合(vsave/vloadを除く)

・HSP2.61・・・◎問題なし、画面維持もタスクバーも維持、理想形
--
・HSP3.0・・・問題なし、▲Win、▲Err
・HSP3.1・・・問題なし、▲Win、▲Err
・HSP3.2・・・問題なし、▲Win、▲Err
・HSP3.21a2・・・問題なし、▲Win、▲Err
・HSP3.31rc1・・・問題なし、▲Win、▲Err
--
・HSP3.4rc2・・・問題なし、▲Win
・HSP3.51・・・問題なし、▲Win
・HSP3.6beta3・・・問題なし、▲Win
・HSP3.6beta4・・・問題なし、▲Win
--
・HSP3.6beta5・・・▲フリーズ
・HSP3.6beta6・・・▲フリーズ
・HSP3.6・・・▲フリーズ
・HSP3.7beta4・・・▲フリーズ
・HSP3.7beta5・・・▲フリーズ

▲Win:画面状態が維持されない(ウィンドウ再作成)、タスクバーに2つ3つ作られて1つに戻る
▲Err:HSP3.0からHSP3.31では終了時に警告ダイアログ表示(VC++ Runtime Error)
▲フリーズ:run命令直後に落ちたり、ウィンドウ表示してから落ちたり、たまに正常起動するなど、挙動が安定しない。

気になった点としては、HSP3.6beta5とHSP3.6beta6にて「オブジェクトファイル作成」「実行ファイル自動作成」のダイアログ表示が英文だったこと(HSP3.6から日本語に戻っている)

-----
■現状のrun命令の位置付けについて

今回run命令を初めて使用したのですが、HSP2.61のrun命令の挙動を見た限りでは、HSP3.0以降の位置付け(使い道?)がよくわからなかったりします。

ウィンドウ画面もタスクバーも再作成され、画面バッファや変数もクリアされるため継続性がないのでスクリプト切り替え実行のメリットが無いように感じます。

これだとexec hsp3.exe利用でも同様の処理が実現できます(フリーズ暫定回避策?hsp3.exeが必要。こっちのほうが不自然なタスクバー動作が出ない)


確認サンプルスクリプトのrunとstopの記述を以下のように変更 hsp3.exeをexe実行フォルダに置いてください(exec用) vsave"var.bin":run "run1.ax" stop ↓ vsave"var.bin":exec "hsp3 run1.ax" end ※run1.axは、run2/run3など変更箇所による

HSPスクリプト上にスクリプトを搭載する手法(ModuleGS?など)を使う人もいるみたいですが、axオブジェクトを実行する機能があるのに有効活用できないのがなんか勿体ない気がします。

-----
おにたまさんよりHSP3.7β4テストにて不具合として改善していくとの回答が既にありますが、どのようになるのでしょうか?
(出来れば画面と変数の維持も実現して欲しいところです。。)

https://hsp.tv/play/pforum.php?mode=all&num=98986#99169

>run命令については、画面の内容を維持したまま移行するのがHSP3では構造上難しくなっています。
>ただ、機能としてはサポートしていますので、クラッシュしてしまうのは不具合と思いますので改善していきたいと考えています。



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