スクリプトエディタ上でファイルパスを直接記述するときのみ
「\」→「\\」に置き換えする必要がありますが、
今回のようにファイル選択ダイアログで選択されたファイルのフルパスに関しては
「\」→「\\」に置き換えする必要はないです。
それでもgploadでエラーが起きるのであれば、
前回紹介したファイル選択ダイアログを使っていますか?
http://hsp.tv/play/pforum.php?mode=all&num=95724
ファイル選択ダイアログを使用するとカレントディレクトリが移動してしまうため、
場合によっては戻してあげる必要があります。
(モデルデータとか相対パスで記述されているようなファイルは誤動作する可能性があります)
【参考】
小ワザ/ファイル選択ダイアログ
https://wiki.hsp.moe/%E5%B0%8F%E3%83%AF%E3%82%B6%EF%BC%8F%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E9%81%B8%E6%8A%9E%E3%83%80%E3%82%A4%E3%82%A2%E3%83%AD%E3%82%B0.html#x00971fe
#include "hgimg4.as"
#uselib "Comdlg32.DLL"
#func GetOpenFileName "GetOpenFileNameA" int
#define BUFSIZE 260
#define FILTERSIZE 512
#define ALLTYPE "ALL files (*.*)@*.*@"
#define GPBFILE "GPBファイル (*.gpb)@*.gpb@"
#define OFN_FILEMUSTEXIST $00001000
dim ofn , 22
sdim aplFilter , FILTERSIZE+1
sdim usrFilter , FILTERSIZE+1
sdim filename , BUFSIZE+1
aplFilter = GPBFILE + ALLTYPE + "@"
usrFilter = "ユーザ選択フィルタ (*.*)@*.*@" + "@"
repeat
await 0
mutch=instr(aplFilter,start,"@")
if mutch = -1 : break
poke aplFilter , start + mutch , $00
start += mutch + 1
loop
start = 0
repeat
await 0
mutch=instr(usrFilter,start,"@")
if mutch = -1 : break
poke usrFilter , start + mutch , $00
start += mutch + 1
loop
ofn.0 = 88 ; lStructSize
ofn.1 = hwnd ; hwndOwner
ofn.2 = hinstance ; hInstance
ofn.3=varptr(aplFilter) ; lpstrFilter
ofn.4=varptr(usrFilter) ; lpstrCustomFilter
ofn.5 = FILTERSIZE ; nMaxCustFilter
ofn.6 = 1 ; nFilterIndex
ofn.7=varptr(filename) ; lpstrFile
ofn.8 = BUFSIZE ; nMaxFile
ofn.9 = 0 ; lpstrFileTitle
ofn.10 = 0 ; nMaxFileTitle
ofn.11 = 0 ; lpstrInitialDir
ofn.12 = 0 ; lpstrTitle
ofn.13 = OFN_FILEMUSTEXIST ; Flags
prm=varptr(ofn)
cd = dir_cur // カレントディレクトリを退避
GetOpenFileName prm
chdir cd // カレントを戻す
if stat = 0{
dialog "失敗" , 0 , "終了確認" : end
}
title filename
gpload id_model, filename
if id_model < 0 : dialog "gploadでエラーが発生" : end
stop