diff --git a/SourceX/miniwin/misc_io.cpp b/SourceX/miniwin/misc_io.cpp index 8eb3c375b..e04e40dbc 100644 --- a/SourceX/miniwin/misc_io.cpp +++ b/SourceX/miniwin/misc_io.cpp @@ -1,4 +1,5 @@ #include +#include #include #include #include @@ -54,7 +55,7 @@ WINBOOL ReadFile(HANDLE hFile, LPVOID lpBuffer, DWORD nNumberOfBytesToRead, LPDW memfile *file = static_cast(hFile); UNIMPLEMENTED_UNLESS(!lpOverlapped); size_t len = std::min(file->buf.size() - file->pos, nNumberOfBytesToRead); - std::copy(file->buf.begin() + file->pos, file->buf.begin() + file->pos + len, static_cast(lpBuffer)); + std::memcpy(lpBuffer, file->buf.data() + file->pos, len); file->pos += len; *lpNumberOfBytesRead = len; return true; @@ -75,9 +76,7 @@ WINBOOL WriteFile(HANDLE hFile, LPCVOID lpBuffer, DWORD nNumberOfBytesToWrite, return true; if (file->buf.size() < file->pos + nNumberOfBytesToWrite) file->buf.resize(file->pos + nNumberOfBytesToWrite); - std::copy(static_cast(lpBuffer), - static_cast(lpBuffer) + nNumberOfBytesToWrite, - file->buf.begin() + file->pos); + std::memcpy(file->buf.data() + file->pos, lpBuffer, nNumberOfBytesToWrite); file->pos += nNumberOfBytesToWrite; *lpNumberOfBytesWritten = nNumberOfBytesToWrite; return true;