【HSP】書き込み・オープンできるかチェックする

ファイルを読み書きできるかチェックするモジュールです。bloadやbsaveなどでHSPエラー12を防ぐためにチェックするのに使えるかなぁと。

ファイルを読み書きできるかチェックするモジュールです。bloadやbsaveなどでHSPエラー12を防ぐためにチェックするのに使えるかなぁと。

#module _FileCheck_
#uselib "kernel32"
#cfunc _FC_CreateFile "CreateFileA" sptr,sptr,sptr,sptr,sptr,sptr,sptr
#cfunc _FC_GetLastError"GetLastError"
#func _FC_CloseHandle "CloseHandle" sptr
#define GENERIC_READ 0x80000000
#define GENERIC_WRITE 0x40000000
#define OPEN_EXISTING 0x00000003
#define FILE_ATTRIBUTE_NORMAL 0x00000080
#define INVALID_HANDLE_VALUE -1
#deffunc FileCheck str _fname
fname = _fname
hFile = _FC_CreateFile(fname, GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0)
error = _FC_GetLastError()
if hFile != INVALID_HANDLE_VALUE {
_FC_CloseHandle hFile
}
return error
#global
// stat
// http://homepage3.nifty.com/aokura/tips/e000000.html
//
FileCheck "test.txt"
if stat == 0{
mes ""
}else : if stat == 2 || stat == 3{
mes ""
}else : if stat == 4 || stat == 5{
mes ""
}else : if stat == 32 || stat == 33{
mes ""
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX