Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » *Решено* Win32API | Базовый диалог открытия файла сам не открывается

Ответить
Настройки темы
*Решено* Win32API | Базовый диалог открытия файла сам не открывается

Аватара для Savant

Старожил


Сообщения: 300
Благодарности: 6

Профиль | Сайт | Отправить PM | Цитировать


Я пас... где ошибка???
CommDlgExtendedError() возвращает по-видимому CDERR_INITIALIZATION
Цитата Windows SDK:
The common dialog box function failed during initialization. This error often occurs when sufficient memory is not available.
с памятью вроде всё в порядке...

Код: Выделить весь код
LPSTR buf =
Код: Выделить весь код
new char[256];
 
OPENFILENAME ofn;
memset(&ofn, 0,
Код: Выделить весь код
sizeof (OPENFILENAME));
ofn.lStructSize = sizeof (OPENFILENAME);
ofn.hwndOwner = hDlg; // это хэндл диалога, из которого запускаю
ofn.lpstrFilter = "Все файлы\0*.*\0\0";
ofn.nFilterIndex = 1;
ofn.lpstrFile = buf;
ofn.nMaxFile = 256;
ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST | OFN_ENABLESIZING | OFN_HIDEREADONLY | OFN_NOREADONLYRETURN;
if (!GetOpenFileName(&ofn)) {
  sprintf(buf, "%d\0", CommDlgExtendedError());
  MessageBox(0, buf, "", 0);
}
 
delete buf;


Отправлено: 20:16, 21-03-2005

 

Аватара для Savant

Старожил


Сообщения: 300
Благодарности: 6

Профиль | Сайт | Отправить PM | Цитировать


С утречка вроде получше соображаться стало . В общем слегка изменив предыдущий код, имеем:

Код: Выделить весь код
 
char szFilter[] = TEXT("Все файлы (*.*)\0*.*\0\0");
char szBuf[MAX_PATH];
OPENFILENAME ofn;
 
memset(&ofn, 0, sizeof (OPENFILENAME));
memset(&szBuf, 0, sizeof (szBuf));
ofn.lStructSize = sizeof (OPENFILENAME);
ofn.hwndOwner = hWndMain; // это хэндл диалога, из которого запускаю, возвращенный CreateDialog()
ofn.lpstrFilter = szFilter;
ofn.nFilterIndex = 1L;
ofn.lpstrFile = szBuf;
ofn.nMaxFile = sizeof (szBuf);
ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST | OFN_ENABLESIZING | OFN_HIDEREADONLY | OFN_NOREADONLYRETURN;
 
if (!GetOpenFileName(&ofn)) {
  sprintf(szBuf, "%d\0", CommDlgExtendedError());
}
 
MessageBox(0, szBuf, "", 0);

Эта бяка уже работает превосходно . Но мне всё же не ясно, что изменилось фактически...

Отправлено: 11:28, 22-03-2005 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.

pva pva вне форума

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


Отличие в том, что не инициализируешь имя файла (в буфере лежит всякая гадость, напр."~!\?/'" а не "\0"). Попробуй в примере №1 *buf = 0; Если поможет - напиши.

Отправлено: 12:06, 22-04-2005 | #3


Аватара для Savant

Старожил


Сообщения: 300
Благодарности: 6

Профиль | Сайт | Отправить PM | Цитировать


pva
Цитата:
Попробуй в примере №1 *buf = 0; Если поможет - напиши.
Само собой поможет . Кстати в том же примере №1 есть и ошибка неприметная: вместо delete buf надо delete[] buf. Удалить-то нужно весь массив...

Отправлено: 15:19, 22-04-2005 | #4



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » *Решено* Win32API | Базовый диалог открытия файла сам не открывается

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
VBS/WSH/JS - [решено] Как вызвать диалоговое окно открытия файла? jaki Скриптовые языки администрирования Windows 4 30-03-2011 12:12
Любой язык - [решено] Удаление файла после открытия intersk Скриптовые языки администрирования Windows 6 08-04-2009 07:46
[решено] Диалог открытия файла + добавление текста в существующий лейбл D_Master AutoIt 8 13-02-2009 22:16
[решено] зависает папка после открытия файла igoriss Microsoft Windows 2000/XP 13 15-03-2007 22:53
Исчез диалог открытия/сохранения файла tri777ki Microsoft Windows 2000/XP 1 10-03-2007 18:16




 
Переход