皆さん返信ありがとうございます。
TOMATOさんとゆうやんさんがおっしゃるように、
UTF-8のランタイムを使用することで、解決しました。
#packopt name "utf-8_runtime_version"
#include "hsp3utf.as"
mes dir_cmdline
exist dir_cmdline
mes "exist "+strsize
if strsize!=-1 : mes"存在する"
しかし、このランタイムを使うと
実行ファイルのサイズが大きくなってしまうのが気になります…
なので、Win32APIを使う方法も試してみたいです。
Xさんが提供してくださったスレの、暇人さんのソースを使って、
それっぽいものを作ってみたのですが、上手くいきません。
とりあえず、通常文字に変換したものと、変換前のUnicodeのものを指定したのですが、どちらも上手くいきませんでした。
Xさんが、UTF16LEから変換しなくてならないとおっしゃりましたが、
何に、どうやって変換するのでしょうか?
#packopt name "win32api_version"
#uselib "kernel32"
#func GetCommandLineW "GetCommandLineW"
#func LocalFree "LocalFree" sptr
#uselib "shell32"
#func CommandLineToArgvW "CommandLineToArgvW" wptr,wptr
#uselib "shlwapi.dll"
#func PathFileExists "PathFileExistsA" sptr
GetCommandLineW
lpCmdLineW=stat
CommandLineToArgvW lpCmdLineW, varptr(NumArgs)
if stat=0 {dialog "リストが無い":end}
pCmdList=stat
dupptr p, pCmdList, 4*NumArgs, vartype("int")
repeat NumArgs
dupptr temp_CmdLineW, p(cnt), 256, vartype("str")
CmdLinesA(cnt) = cnvwtos(temp_CmdLineW)
mes CmdLinesA(cnt)
if cnt==1{
PathFileExists varptr(temp_CmdLineW)
mes "\nUnicode PathFileExists "+stat
if stat==1 : mes" 存在する"
exist temp_CmdLineW
mes "\nUnicode exist "+strsize
if strsize!=-1 : mes" 存在する"
PathFileExists varptr( CmdLinesA(1) )
mes "\n通常文字 PathFileExists "+stat
if stat==1 : mes" 存在する"
exist CmdLinesA(1)
mes "\n通常文字 exist "+strsize
if strsize!=-1 : mes" 存在する"
}
loop
mes
LocalFree pCmdList
mes "LocalFree "+stat
stop
また、Xさんが提示してくださったmod_unicodeモジュールですが、
ファイル名をクリックしても、"500 Internal Server Error"と出て、ダウンロードできませんでした。