我想从文件(.txt)中读取数据并按下“编辑”框。 我正在用纯API编写C ++。
HANDLE hFile;
HANDLE hMapFile;
LPVOID pMemory;
和
case IDM_OPEN:
hFile = CreateFile((LPCWSTR)szFileName, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, 0, OPEN_EXISTING, FILE_ATTRIBUTE_ARCHIVE, NULL);
hMapFile = CreateFileMapping(hFile, NULL, PAGE_READONLY, 0, 0, NULL);
pMemory = MapViewOfFile(hMapFile, FILE_MAP_READ | FILE_MAP_WRITE, 0,0,0);
FileSize = GetFileSize(hFile, NULL);
SendMessage(hWndEdit, WM_SETTEXT, 0, (LPARAM)(LPCWSTR)pMemory);
MessageBox(hWnd, (LPCWSTR)pMemory, L"Caption", MB_OK);
UnmapViewOfFile(pMemory);
CloseHandle(hMapFile);
CloseHandle(hFile);
break;
结果:空白,编辑框中没有任何内容
我搜索某些页面但未解决。
当我尝试使用set breakpoint进行调试时,如下图所示:
http://i8.upanh.com/2013/1103/02//57993893.untitled.png
(抱歉,我无法发布图片)
hFile是0xffffffff,所以我认为错误是CreateFile,但我不明白!!
请帮我解决这个问题。谢谢!!!
答案 0 :(得分:1)
hFile = CreateFile((LPCWSTR)szFileName,....
为什么要投射到LPCWSTR?如果你需要那个演员你做错了什么。使用调试器调查每个步骤,以了解有关错误的更多信息。