[問題] 視窗程設 啟動檔案問題
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
Visual C++2010
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
無
問題(Question):
使用VC2010建置一個Windows應用程式模組後(有基本視窗功能)
增加工具列"瀏覽"選項
使用瀏覽啟動一個EXE執行檔
但是無法讀檔成功
另外要問的是 如何在瀏覽選擇檔案後
就讓他直接執行這個exe檔?
*[36m預期的正確結果(Expected Output):*[m
在工具列瀏覽後 選擇要執行的exe檔
點選後自動執行所選擇的檔案
程式碼(Code):(請善用置底文網頁, 記得排版)
以下是我點選"瀏覽"後所呼叫的function
有兩個 但只呼叫 第二個"DoFileOpen" 在這裏面會呼叫第一個"LoadFile"
http://codepad.org/K7BKoJbD
bool LoadFile(HWND hEdit, LPSTR pszFileName)
{
HANDLE hFile;
bool bSuccess = false;
hFile = CreateFile(
(LPCWSTR)pszFileName, GENERIC_READ, FILE_SHARE_READ, NULL,
OPEN_EXISTING, 0, 0);
if(hFile != INVALID_HANDLE_VALUE)
{
DWORD dwFileSize;
dwFileSize = GetFileSize(hFile, NULL);
if(dwFileSize != 0xFFFFFFFF)
{
LPSTR pszFileText;
pszFileText = (LPSTR)GlobalAlloc(GPTR, dwFileSize + 1);
if(pszFileText != NULL)
{
DWORD dwRead;
if(ReadFile(hFile, pszFileText, dwFileSize, &dwRead, NULL))
{
pszFileText[dwFileSize] = 0; // Null terminator
}
GlobalFree(pszFileText);
}
}
CloseHandle(hFile);
}
return bSuccess;
}
bool DoFileOpen(HWND hwnd)
{
OPENFILENAME ofn;
char szFileName[MAX_PATH];
ZeroMemory(&ofn, sizeof(ofn));
szFileName[0] = 0;
ofn.lStructSize = sizeof(ofn);
ofn.hwndOwner = hwnd;
ofn.lpstrFilter = TEXT("EXE (*.exe)\0*.exe\0");
ofn.lpstrFile = szFileName;
ofn.nMaxFile = MAX_PATH;
ofn.lpstrDefExt = TEXT("EXE");
ofn.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
if(GetOpenFileName(&ofn))
{
if(!LoadFile(GetDlgItem(hwnd, IDC_MAIN_TEXT), (LPSTR)szFileName))
{
MessageBox(hwnd, TEXT("讀檔失敗"), TEXT("Error"),
MB_OK | MB_ICONEXCLAMATION);
return FALSE;
}
}
return TRUE;
}
補充說明(Supplement):
在瀏覽選擇後 卻會跳到讀檔失敗的function
不太確定LoadFile的使用有沒有錯誤
麻煩版上高手解答了 謝謝!
--
要感謝的東西太多了 那就謝天吧
要改的程式太多了 那就改天吧
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.136.16.178
※ 編輯: ym410804 來自: 220.136.16.178 (07/19 13:28)
※ 編輯: ym410804 來自: 220.136.16.178 (07/19 13:29)
推
07/19 16:32, , 1F
07/19 16:32, 1F
推
07/19 22:56, , 2F
07/19 22:56, 2F
→
07/19 22:56, , 3F
07/19 22:56, 3F
→
07/19 23:39, , 4F
07/19 23:39, 4F
→
07/19 23:39, , 5F
07/19 23:39, 5F
→
07/19 23:40, , 6F
07/19 23:40, 6F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章