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


HSPTV!掲示板


未解決 解決 停止 削除要請

2019
0527
初心者VCランタイムエラー3解決


初心者

リンク

2019/5/27(Mon) 15:14:03|NO.87482

button gosub "test",*test
stop
*test
repeat
wait 100
loop
return

上記のコードを実行し、testボタンを押してからバツボタンで閉じようとすると、
下記のエラーが発生します。回避する方法はありませんでしょうか。

Microsoft Visual C++ Runtime Library
Runtime Error!

Program: プログラムのパス

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.

・HSP3.51です。
・Windows10 64bitでコンパイル実行するとエラーが発生します。
・Windows10 32bitでコンパイル実行しても問題ありません。
・64bit環境で作成したexeを32bit環境で実行しても問題ありません。
・32bit環境で作成したexeを64bit環境で実行するとエラー発生します。
・VCランタイムはいろいろインストールしましたが改善しませんでした。

以上よろしくおねがいします。



この記事に返信する


沢渡

リンク

2019/5/27(Mon) 16:56:01|NO.87485

当方の環境で実行してみましたが(Windows10 64bit HSP3.51)、エラーは表示されませんでした。
おにたまさんのブログにも同様の不具合を報告している人がいますが、
やはりおにたまさんの環境でもエラーは再現されなかったようです。(だいぶ前のバージョンですが)
http://www.onionsoft.net/wp/archives/1642
確証はないのですが、試しに再起動してから同じコードを実行したらどうなるでしょうか?
Windows8以降だと、通常のシャットダウンでは内部タイマーがリセットされず、
waitやawaitで不具合が発生しやすいようなので、もしかしたらと思うのですが。

もし解決しないようなら、根本的な対処法ではないかもしれませんが、
次のように[x]を押した時点ではフラグだけを立て、
フラグの内容を定期的に監視して終了させる、という方法ではどうでしょうか?

onexit gosub *exit button gosub "test",*test repeat if exit_flag : break await 100 loop end *test repeat if exit_flag : break wait 100 loop return *exit exit_flag=1 return



初心者

リンク

2019/5/28(Tue) 11:48:25|NO.87500

>沢渡様
 ご回答ありがとうございます。
 >再現しない
 新規購入したHP社のPC3台(Win10:64bit)で発症するので、普遍的な問題かと思ったのですが違うようですね…。

 >再起動
 試しましたが改善しませんでした。

 >回避サンプルコード
 ご提示いただいたコードを試したところ、エラーは発生しませんでした。この方法でとりあえず回避しようと思います。

 どうもありがとうございました。



Drip

リンク

2019/5/28(Tue) 17:26:58|NO.87501

こんにちは。横から失礼します。

現在のHSPには特定の操作でランタイムエラーが発生する不具合があるようです。
私の環境では初心者さんのスクリプトではエラーは確認できませんでしたが、
以下のスクリプトで当方では64bit版のWindows8以降の全てのPCでランタイムエラーが確認できます。
(HSP3.5, 3.51, コンパイル実行・テスト実行問わずエラーが確認できます。)

mes "以下の2通りの操作でランタイムエラーをテストできます。" mes "・閉じるボタンを2回押す → エラー" mes "・閉じるボタンのあとTESTボタンを押す → エラー" onexit gosub *quit button "TEST",*test stop *test mes "文字を表示しました。" stop *quit if nest!1:nest=1:mes "1回ネストしました。(閉じるを再クリックで終了)":stop end
エラーが発生するPCとしないPCがあるようなのですが、
今回報告されているタイプのランタイムエラーではどの報告にも共通して
“閉じるボタンを押す操作”と“gosubまたはrepeatネスト”が含まれているように思います。
上記スクリプトでのテストにおいて、エラーが確認できる環境とできない環境の報告や、
何か気付かれた方は報告をいただければ問題の修復に役立つかもしれません。



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