Вызываю из диалога:
| Код | TCHAR file[512]; wcscpy(file, L"\0"); OPENFILENAME open; ZeroMemory(&open, sizeof(OPENFILENAME)); open.lStructSize = sizeof(OPENFILENAME); open.hwndOwner = mainHwnd; open.hInstance = hInst; open.lpstrFilter = _T("EXE (*.exe)\0*.wgt\0DLL\0*.dll\0All files\0*.*\0\0"); open.lpstrCustomFilter = L"\0"; open.nMaxCustFilter = 0; open.nFilterIndex = 1; open.lpstrFile = file; open.nMaxFile = sizeof(file); open.lpstrFileTitle = NULL; open.nMaxFileTitle = 0; open.lpstrInitialDir = NULL; open.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY; open.lpfnHook = NULL; open.lpstrDefExt = _T("exe");
if(GetOpenFileName(&open)) { MessageBox(NULL, file, L"File", MB_OK); }
|
На GetOpenFileName прога зависает, если точнее на:
| Код | 00433AC6 call @ILT+2190(_GetOpenFileNameW@4) (430893h) //breakpoint на этой строке срабатывает 00433ACB test eax,eax // а на этой уже нет
|
|