加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c++的CreateFile导致内存不能为written错误

发布时间:2020-12-16 09:18:23 所属栏目:百科 来源:网络整理
导读: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_E

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] = ‘‘;
pBuffer[dwFileSize + 1] = ‘‘;
//std::wstring srcEncode;
srcEncode = DetectEncode(pBuffer,dwFileSize);
CloseHandle(hFile);
free(pBuffer);

?

HANDLE hFile = CreateFile(szFileName,
OPEN_EXISTING,NULL);

这一句,文件读写方式?要选择FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE模式,否则多次打开关闭就有可能导致内存不能为written错误,这个错误是通过运行exe程序的时候,调用调试命令找到的。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读