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


HSPTV!掲示板


未解決 解決 停止 削除要請

2022
0708
HETAREXモジュール内でpipeexecを使用したい2解決


HETAREX

リンク

2022/7/8(Fri) 11:44:30|NO.96763

お世話になります。
以下の様に、モジュール内でpipeexec命令を使用したいのですが、
error2(文法が間違っています)になってしまいます。
モジュール内に含めなければ正常に動作するのですが、
モジュール内でpipeexecを使用する方法はありますでしょうか。


#include "hspext.as" routeprint stop #module #deffunc routeprint sdim ln,4096 sdim buf,32000 cmd = "cmd /c route print -4" pipeexec buf,cmd,0 if stat : dialog "実行できませんでした" : end repeat pipeget ln if stat=0 : break await 10 loop mes "実行を終了しました" return #global



この記事に返信する


沢渡

リンク

2022/7/8(Fri) 13:55:13|NO.96764

hspext.asの内容を確認しましたが、#funcにglobal指定がないので、
モジュール外で#include "hspext.as"としてもモジュール内では新規命令は使えないようです。
(そもそも"#func pipeexec pipeexec 5"のようなHSP2的な指定方法の場合だと、
 globalを付けても意味がない様子?
 #uselib "hspext.dll"
 #func global pipeexec pipeexec 5
 #func global pipeget pipeget $83
 としてもやっぱりエラーになったので)

以下のようにモジュール外ではなく
モジュール内に#include "hspext.as"を置くとどうでしょうか?

routeprint stop #module #include "hspext.as" #deffunc routeprint sdim ln,4096 sdim buf,32000 cmd = "cmd /c route print -4" pipeexec buf,cmd,0 if stat : dialog "実行できませんでした" : end repeat pipeget ln if stat=0 : break await 10 loop mes "実行を終了しました" return #global



HETAREX

リンク

2022/7/8(Fri) 17:52:36|NO.96766

沢渡様
回答頂き有難うございます。
こちらでも#func globalやpipeexec@などは試して上手くいかなかったのですが、
モジュール内で#includeするのは盲点でした。
この方法で上手く動きましたので、解決とさせていただきます。



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