hsp3でWin32APIを使ってファイルをコピーする

※記事内に商品プロモーションを含む場合があります

ファイルのコピーはhsp標準のbcopy命令で実行出来ますが、
エラーが発生するとダイアログが出たりプログラムが止まってしまうため、
Win32apiを使用してファイルをコピーする方法を紹介します。
hsp 3.3

Win32APIを使ってファイルをコピー

//hsp3でファイルをコピーする 2009 eax
#uselib “kernel32.dll”
#cfunc GetLastError “GetLastError”
#cfunc CopyFile “CopyFileA” sptr,sptr,int

file1 = “元のファイル”
file2 = “コピー先のファイル”

ret = CopyFile(varptr(file1),varptr(file2),0)
if ret=0{
errcode = GetLastError()
dialog “失敗 コード:”+errcode+””
}
end

その他

成功すると何も表示されず終了します。
また、コピー先ファイルが存在した場合上書きされます。
失敗するとダイアログが表示されます。
コードはGetLastError関数の物を使用しています。

またCopyFile関数の最後に指定した0を1にすると、
コピー先ファイルが存在した場合にファイルのコピーを
行わずCopyFile関数は失敗に終わります。