после вызова следующей функции я не могу писать в любые файлы я пробовал C++ fstream и Кассиопеяне Еореп что не так, пожалуйста, помогите заранее спасибо я использую CodeBlocks MinGW окна 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
i pass openFileDialog (NULL, «Файлы изображений \ 0 * .png; *. Jpg; *. Jpeg; *. Gif; * .bmp \ 0", "*. *"); и имя файла, возвращаемое функцией, действует, функция работает так, как ожидалось, но после того, как она не вызвала его, дальнейшая работа по записи/изменению файла – miko1