dir_cmdlineはそのままだと使いにくいので作ってみた。なんて命令にしようかな。
dir_cmdlineはそのままだと使いにくいので作ってみた。なんて命令にしようかな。
;
; コマンドライン文字列を解析して取得するモジュール
;
;参考 : http://www.hsp.tv/play/pforum.php?mode=pastwch&num=47162
;
;
#include "kernel32.as"
#include "shell32.as"
#ifndef __CommandLineToArgvW__
#define global __CommandLineToArgvW__
#module
#deffunc test var v_NumArgs, array v_CmdLinesA
; コマンドライン文字列(Unicode型)を取得
;戻り値:文字列へのポインタ
GetCommandLineW
lpCmdLineW = stat
; コマンドライン文字列を解析
CommandLineToArgvW lpCmdLineW, varptr(NumArgs)
if stat=0 : v_NumArgs = 0 : return
pCmdList = stat
;pCmdList : 組み立てられた引数リストへのポインタ
;NumArgs : 引数の数を受け取る整数変数へのポインタ
dupptr p, pCmdList, 4*NumArgs, vartype("int")
repeat NumArgs
dupptr temp_CmdLineW, p(cnt), 256, vartype("str")
v_CmdLinesA(cnt) = cnvwtos(temp_CmdLineW) ;Unicode -> Shift_JIS
loop
LocalFree pCmdList
v_NumArgs = NumArgs
return
#global
#endif // __CommandLineToArgvW__
;
; 実行サンプル
;
#if 10 // 実行サンプル
test argc, argv
mes "引数の数 = " + argc
repeat argc
mes "" + cnt + " : " + argv(cnt)
loop
#endif // 実行サンプル