::CreateFile 的問題 (VS2008 C++ MFC) |
答題得分者是:ikk
|
yensj
一般會員 ![]() ![]() 發表:16 回覆:13 積分:5 註冊:2008-09-25 發送簡訊給我 |
請問板上的前輩 小弟在::CreateFile的時候(讀檔案),小弟將所要讀的檔案寫死路徑了,想要不跳出開啟舊檔的這個面板而完成::CreateFile的動作,請問有方法辦的到嗎?
以下為小弟的code [code cpp] HRESULT hr = S_OK; WCHAR FileNameBuffer[MAX_PATH 1] = {0}; OPENFILENAME ofn = {0}; ofn.lStructSize = sizeof(ofn); ofn.hwndOwner = m_hWnd; ofn.hInstance = ::AfxGetResourceHandle(); ofn.lpstrFilter = L"Fingerprint Templates(*.fpt)\0*.fpt"; ofn.lpstrFile = FileNameBuffer; ofn.nMaxFile = MAX_PATH; ofn.Flags = OFN_OVERWRITEPROMPT | OFN_PATHMUSTEXIST; ofn.lpstrDefExt = L".fpt"; if (GetOpenFileName(&ofn)) { HANDLE hFile = ::CreateFile(L"C:\\Documents and Settings\\Administrator\\桌面\\789.fpt", GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); if (INVALID_HANDLE_VALUE != hFile) { DWORD dwWritten = 0; DWORD dwSize = GetFileSize(hFile, NULL); if (dwSize) { BYTE* buffer = new BYTE[dwSize]; if (!buffer) { ::CloseHandle(hFile); //_com_issue_error(E_OUTOFMEMORY); } DWORD dwNumRead = 0; if (::ReadFile(hFile, buffer, dwSize, &dwNumRead, 0)) { delete [] m_RegTemplate.pbData; m_RegTemplate.pbData = buffer; m_RegTemplate.cbData = dwNumRead; } else { delete [] buffer; ::CloseHandle(hFile); // _com_issue_error(HRESULT_FROM_WIN32(::GetLastError())); } ::CloseHandle(hFile); } else { ::CloseHandle(hFile); // _com_issue_error(E_FAIL); } } } [/code] 編輯記錄
yensj 重新編輯於 2009-05-29 00:04:18, 註解 無‧
|
ikk
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:4 回覆:413 積分:768 註冊:2003-06-30 發送簡訊給我 |
|
yensj
一般會員 ![]() ![]() 發表:16 回覆:13 積分:5 註冊:2008-09-25 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |