確実に間違ってるのは
>#uselib "user32"
使うのはshell32.dll
>LocalFree
ハンドルが指定されてない
他にも
>CommandLineToArgvW
http://msdn.microsoft.com/ja-jp/library/cc429051.aspx
GetCommandLineAじゃ無くてGetCommandLineWの返す値
文字列型じゃなくて整数変数へのポインタ(個数が返るだけ)
statに引数リストのポンタが返る
リストは文字列のアドレスが先頭から4バイトずつ並ぶ(その後にコマンドが並んでる感じ)
#uselib "kernel32"
#func global GetCommandLineW "GetCommandLineW"
#func global LocalFree "LocalFree" sptr
#uselib "shell32"
#func global CommandLineToArgvW "CommandLineToArgvW" wptr,wptr
GetCommandLineW
lpCmdLineW=stat
CommandLineToArgvW lpCmdLineW, varptr(NumArgs)
if stat=0 {dialog "リストが無い":end}
pCmdList=stat
repeat NumArgs
dupptr p,pCmdList+cnt*4,4,vartype("int")
dupptr temp_CmdLineW,p,256,vartype("str")
CmdLinesA(cnt)=cnvwtos(temp_CmdLineW)
mes CmdLinesA(cnt)
loop
LocalFree pCmdList
mes "LocalFree "+stat
stop