из-за проблем с производительностью я не хотел использовать fstream всего один раз.Похоже, очень плохая идея использовать функции WinAPI с std :: string вместо обычного массива char.В общем, я хотел бы, чтобы вы сказали мне, почему следующий фрагмент просто не работает (пустой stBuffer остается пустым) и что мне нужно сделать, чтобы исправить это.
Заранее спасибо!
std::size_t Get(const std::string &stFileName, std::string &stBuffer)
{
HANDLE hFile = ::CreateFileA(stFileName.c_str(), GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
DWORD dwBytesRead = 0;
if(hFile != INVALID_HANDLE_VALUE)
{
DWORD dwFileSize = ::GetFileSize(hFile, NULL);
stBuffer.reserve(dwFileSize + 1);
::ReadFile(hFile, &stBuffer[0], dwFileSize, &dwBytesRead, NULL);
stBuffer[dwFileSize] = '\0';
::CloseHandle(hFile);
}
return dwBytesRead;
}