파일 경로, 이름 및 확장명을 반환하는 도구로 사용하려는 간단한 파일 저장 대화 상자가 있습니다. 이 함수는 파일 이름 주위의 스택이 손상되었다는 런타임 오류를 발생시킵니다. 나는 그것을 이렇게 사용하고 싶다.파일 저장 대화 상자 (windows32)에서 파일 이름 반환
wchar_t filename[] = L"";
newGradebookDialog(hwnd, filename);
그리고 내 기능은 다음과 같다. 그것은 예상대로 파일 이름을 수정하지만 런타임 스택 오류는 내가 얻지 못하는 것입니다. 하나 개의 요소의 배열
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);
}