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


HSPTV!掲示板


未解決 解決 停止 削除要請

2010
1014
通行人HSPからHSPのスクリプトをコンパイル・実行したい5解決


通行人

リンク

2010/10/14(Thu) 02:08:19|NO.35347

度々、質問していてすみません。
今、HSPのスクリプトをコマンドラインでコンパイル・実行できるようなスクリプトを、サンプルにあったhspcmp.hspに手を加える形で作っているのですが・・・
起動オプションを指定して、スクリプトエディタから実行すると、指定したスクリプトがコンパイル・実行され、期待通りの動作をします。
ですが、これを実行ファイルにすると、指定したスクリプトがコンパイルエラーになってしまいます。HSPのインストールフォルダにおいても駄目でした。

コンパイル結果(?)として表示されるものは、これなのですが・・・
#HSP script preprocessor ver3.21 / onion software 1997-2010(c)
#Use file [hspdef.as] #Source file not found.[test.hsp]



色々と調べてみましたが、原因がいまいち分かりません。どうすればいいのでしょうか、、、

#include "hspcmp.as"
sdim mesbuf,$10000 sdim rtname,256 fname=dir_cmdline ; スクリプトファイル名 (コマンドラインから取得) objname=""+getpath(dir_cmdline,32)+"obj" ; オブジェクトファイル名 hsc_ini fname hsc_objname objname hsc_comp 0 ; コンパイル res=stat: if res!=0 : /*dialog "ERROR"*/ : goto *goerror hsc3_getruntime rtname, objname ; ランタイム名を取得 if rtname="" : rtname="hsp3.exe" debug_mode=0 ; デバッグウィンドウ表示フラグ cmdexe = "\""+dir_exe+"\\"+rtname+"\" "+objname hsc3_run cmdexe, debug_mode ; ランタイムを実行する *goerror hsc_getmes mesbuf objmode 1 screen ,400,300 mesbox mesbuf,400,300,5 wait 100*10 end



この記事に返信する


SYAM

リンク

2010/10/14(Thu) 10:21:59|NO.35350

やってみたら、エラーメッセージの内容が違いました。


#Source file not found.[test.hsp"]
…になってませんか?

どこかに

fname=strtrim(fname,0,'"')
が要るのかもしれません。
これ入れても別のエラーになるだけで成功はしませんが、多分必要そうです。



通行人

リンク

2010/10/14(Thu) 19:24:01|NO.35352

返信ありがとうございます。
コンパイル結果のエラーメッセージについてですが〜・・・
今確認してみたところ、コンパイル対象に指定しているファイル名を" "で囲んでいるとdir_cmdlineで取得されるパス名にも" "で囲まれてしまうため、エラーになってしまうようです。
早速、改善してみました。


でも、相変わらず実行ファイルにしてしまうとコンパイルエラーで動きません・・・。
スクリプトファイル、objファイルのパス設定には特に問題がないようなのですが。
エラーメッセージは、最初に提示したものと変わっていません。

何が原因なのか、お分かりになる方はいませんか?

#include "hspcmp.as"
sdim mesbuf,$10000 sdim rtname,256 fname=dir_cmdline ; スクリプトファイル名 (コマンドライン) fname=strtrim(fname,0,'"') objname=""+getpath(fname,32)+"obj" ; オブジェクトファイル名 hsc_ini fname hsc_objname objname hsc_comp 0 ; コンパイル res=stat: if res!=0 : /*dialog "ERROR"*/ : goto *goerror hsc3_getruntime rtname, objname ; ランタイム名を取得 if rtname="" : rtname="hsp3.exe" debug_mode=0 ; デバッグウィンドウ表示フラグ cmdexe = "\""+dir_exe+"\\"+rtname+"\" "+objname hsc3_run cmdexe, debug_mode ; ランタイムを実行する *goerror hsc_getmes mesbuf objmode 1 screen ,400,300 mesbox mesbuf,400,300,5 wait 100*10 end



KA

リンク

2010/10/14(Thu) 21:53:48|NO.35354

スクリプトから実行すると、勝手にCOMMONフィルダ等を参照するが、実行ファイルにす
ると参照されない。

・・・のでは?



inovia

リンク

2010/10/14(Thu) 23:15:25|NO.35357

過去ログ
http://hsp.tv/play/pforum.php?mode=pastwch&num=31238

NO.31258の check氏の書き込みが参考になるかもです。



通行人

リンク

2010/10/16(Sat) 19:21:55|NO.35400

レスが遅れました。inoviaさんが提示された過去ログを参考にして色々とやってみたところ、
#include "hspdef.as"
を追加したスクリプトを実行ファイルにし、hspのインストールフォルダにおいてみたところ、無事にコンパイルすることが出来ました。

皆さん、ありがとうございましたm(_ _)m



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