到下面的函數,我不能寫我想C++的fstream和c的的fopen什麼是錯了,請幫忙提前 由於我使用的代碼塊MinGW的Windows 7的文件調用後面寫不工作,來電後打開文件對話框
string openFileDialog(HWND hwnd,char *fileFilter,char *defaultExtension)
{
string fileName = "";
OPENFILENAME ofn;
char szFileName[MAX_PATH] = "";
ZeroMemory(&ofn, sizeof(ofn));
ofn.lStructSize = sizeof(OPENFILENAME);
ofn.hwndOwner = hwnd;
ofn.lpstrFilter = fileFilter;
ofn.lpstrFile = szFileName;
ofn.nMaxFile = MAX_PATH;
ofn.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
ofn.lpstrDefExt = defaultExtension;
if(GetOpenFileName(&ofn)) {
fileName.assign(szFileName);
}
ZeroMemory(&ofn, sizeof(ofn));
return fileName;
}
任何文件
您是否檢查過您返回的字符串是否有效? 'GetOpenFileName'返回'FALSE'時會發生什麼? *你如何打開文件?爲什麼在返回之前調用'ZeroMemory'?這不需要,因爲結構不再使用。 –
什麼是'fileFilter'的值?這是一個棘手的問題。而且,爲什麼它不是'const'參數? – Medinoc
我傳遞openFileDialog(NULL,「Image Files \ 0 * .png; *。jpg; *。jpeg; * .gif; * .bmp \ 0」,「*。*」);和函數返回的文件名是有效的,函數按預期工作,但在調用它之後沒有進一步的文件寫入/修改操作工作 – miko1