0
У меня проблема с GetOpenFileName. Перед вызовом метода GetOpenFileName работает WriteData. WriteData имеют простую процедуру проверки файла:Get open filename убивает ifstream
ifstream inFile(FileName.c_str());
if (!inFile.is_open()) return false;
Ofn дамп:
И после вызова GetOpenFileName его всегда ложно. Но прежде, чем вызвать GetOpenFileName, он работает нормально.
while (!lang->LoadLang(config->getLanguagePath()))
{
OPENFILENAME ofn = {0};
ofn.lStructSize = sizeof(ofn);
ofn.lpstrFile = config->getLanguagePath();
ofn.lpstrFile[0] = '\0';
ofn.lpstrTitle = "Select the language file";
ofn.nMaxFile = 255;
ofn.lpstrFilter = "Language file\0*.lng\0";
ofn.nFilterIndex = 1;
ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;
if (GetOpenFileName(&ofn) == 0) return 0;
config->WriteData(KEY_LANG, ofn.lpstrFile);
}
Вы пытались использовать отладчик, чтобы посмотреть, как выглядит структура после вызова GetOpenFileName? –
Проверьте это. Вопрос обновляется. –
Это похоже на допустимое имя файла, поэтому все, что происходит неправильно, похоже, находится в коде, который вы не показывали. –