Форум: "WinAPI";
Текущий архив: 2004.08.22;
Скачать: [xml.tar.bz2];
ВнизКорявая GetOpenFileName Найти похожие ветки
← →
Alexiy (2004-07-12 14:53) [0]Посмотрел чень много форумов, где обсуждалась эта тема. Но ответ не найден. Эта функция возвращает false. И диалога конечно, не появляется.
Одни говорят, что в 98 диалог будет, а в ХР - нет. Другие - что надо инициализировать переменную lpstrFile даже был вариант, сделать так:
ofn.lpstrFile:=VirtualAlloc(0, 255, MEM_COMMIT, PAGE_READWRITE);
Если кто-то располагает РАБОЧИМ кодом, поделитесь, плз..
← →
clickmaker © (2004-07-12 14:58) [1]
> Alexiy (12.07.04 14:53)
поделись своим кодом лучше
← →
Alexiy (2004-07-12 15:20) [2]так и знал. Вот:
{ isFile: array[0..max_path] of char; - это в var есс-но }
ZeroMemory(@ofn, sizeof(OPENFILENAME));
ofn.lStructSize:=sizeof(OPENFILENAME);
ofn.hWndOwner:=GetActiveWindow();
ofn.hInstance:=0;
ofn.lpstrFile:=isFile;//VirtualAlloc(0, 255, MEM_COMMIT, PAGE_READWRITE);
ofn.nMaxFile:=200;
ofn.lpstrTitle:="Choose file...";
ofn.lpstrFilter:="PE format"+#0+"*.exe"+#0+"All file types"#0+"*.*"+#0#0;
ofn.nFilterIndex:=1;
ofn.lpstrFileTitle:=0;
ofn.lpstrInitialDir:="c:\";
ofn.nMaxFileTitle:=255;
ofn.Flags:=OFN_PATHMUSTEXIST Or OFN_FILEMUSTEXIST Or OFN_HIDEREADONLY;
GetOpenFileName(ofn);
На выходе - пустая ofn.lpstrFile
Да даже если по шаблону МСДН скопировать - нет результата
← →
Alexiy (2004-07-12 15:59) [3]Код ошибки: $0001 =
CDERR_STRUCTSIZE - Элемент lStructSize структуры инициализации для соответствующего стандартного диалогового окна недопустим.
???
← →
Alexiy (2004-07-12 16:24) [4]Всё, сделал. lStructSize:=$4C;
Удалите эту тему плз...
← →
clickmaker © (2004-07-12 17:55) [5]
> Alexiy (12.07.04 15:59) [3]
Хм... Всю жизнь это работало
ofn.lStructSize:=sizeof(OPENFILENAME);
← →
Alexiy (2004-07-13 15:37) [6]Низкоуровневая отладка рулит!
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.08.22;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.042 c