У меня есть простой диалог сохранения файла, который я хочу использовать в качестве инструмента для возврата пути, имени и расширения файла. Эта функция создает ошибку времени выполнения, заявляя, что стек вокруг имени файла поврежден. Я хотел бы использовать его так:возвращение имени файла из диалогового окна сохранения файла (windows32)
И вот моя функция. Он изменяет имя файла, как я ожидаю, но ошибка стека во время выполнения - это то, чего я не получаю.
void newGradebookDialog(HWND hwnd, wchar_t file[])
{
OPENFILENAME ofn;
wchar_t saveFileName[MAX_PATH] = L"";
ZeroMemory(&ofn, sizeof(ofn));
ofn.lStructSize = sizeof(OPENFILENAME);
ofn.hwndOwner = hwnd;
ofn.lpstrFilter = L"Database File (*.db)\0*.db\0";
ofn.lpstrFile = saveFileName;
ofn.nMaxFile = MAX_PATH;
ofn.lpstrDefExt = L"db";
ofn.Flags = OFN_EXPLORER | OFN_PATHMUSTEXIST | OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT;
ofn.lpstrTitle = L"Save New Database";
if(GetSaveFileName(&ofn))
wcscpy(file,saveFileName);
}