c++的CreateFile致使內存不能爲written錯誤

LPCWSTR szFileName;
szFileName=argv[2];
//LPCWSTR szFileName=L"test.txt";//文件名字能夠根據本身的須要修改,或者用變量輸入
HANDLE hFile = CreateFile(szFileName, GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, NULL,
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
// 共享方式打開,避免其餘地方須要讀寫此文件
if (INVALID_HANDLE_VALUE != hFile)
{
DWORD dwFileSize = GetFileSize(hFile, NULL);
PBYTE pBuffer = (PBYTE)malloc(dwFileSize + 2);
int iLen = 0;
if (!ReadFile(hFile, pBuffer, dwFileSize, &dwFileSize, NULL))
{
free(pBuffer);
return FALSE;
}
//CloseHandle(hFile);
pBuffer[dwFileSize] = '\0';
pBuffer[dwFileSize + 1] = '\0';
//std::wstring srcEncode;
srcEncode = DetectEncode(pBuffer, dwFileSize);
CloseHandle(hFile);
free(pBuffer);spa

 

HANDLE hFile = CreateFile(szFileName, GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, NULL,
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);調試

這一句,文件讀寫方式 要選擇FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE模式,不然屢次打開關閉就有可能致使內存不能爲written錯誤,這個錯誤是經過運行exe程序的時候,調用調試命令找到的。code

相關文章
相關標籤/搜索