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);
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程序的时候,调用调试命令找到的。
                    
                
                
            
        
浙公网安备 33010602011771号