Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.03.2016, 17:04   #11
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию

не могу понять зачем тут символ \0 воткнут по середине.

file.lpstrFilter = _T("Text\0*.txt");
RAFA91 вне форума Ответить с цитированием
Старый 21.03.2016, 17:15   #12
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Может таки почитаете документацию?

Цитата:
A buffer containing pairs of null-terminated filter strings. The last string in the buffer must be terminated by two NULL characters.

The first string in each pair is a display string that describes the filter (for example, "Text Files"), and the second string specifies the filter pattern (for example, "*.TXT"). To specify multiple filter patterns for a single display string, use a semicolon to separate the patterns (for example, "*.TXT;*.DOC;*.BAK"). A pattern string can be a combination of valid file name characters and the asterisk (*) wildcard character. Do not include spaces in the pattern string.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 21.03.2016, 17:28   #13
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию

надо так ?

file.lpstrFilter = _T("Text\0*.txt\0\0");
RAFA91 вне форума Ответить с цитированием
Старый 21.03.2016, 17:38   #14
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Если _T это L (юникод), то наверно \0\0 в конце и так будет.

Только непонятно зачем автор написал _T вместо L и вообще зачем все эти майкрософтовские Т/TCHAR/... использовать, не видел никого кто бы считал это хорошей идеей.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 21.03.2016 в 17:40.
Alex11223 вне форума Ответить с цитированием
Старый 21.03.2016, 17:55   #15
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Только непонятно зачем автор написал _T вместо L .
это во всей книге такое.

вот ответ скрин

кстати а в строке file.lpstrFile = name; будет содержатся имя файла вместе с путем ?
Изображения
Тип файла: jpg Безымянный.jpg (113.8 Кб, 163 просмотров)
RAFA91 вне форума Ответить с цитированием
Старый 21.03.2016, 17:59   #16
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Я в курсе что такое _T, но мне (и не только мне) это не кажется хорошей идей.

Например в данном случае если проект будет собран без _UNICODE, то L пропадет и вместо двух \0\0 вероятно будет только один.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 21.03.2016, 18:12   #17
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию

lpstrFile
указатель на строку, в которой будет содержаться имя файла, возвращаемое окном

Это с учетом расширения и полного пути к файлу ?

капец вот в чем тут отличие ?
Изображения
Тип файла: jpg Безымянный.JPG (34.3 Кб, 112 просмотров)

Последний раз редактировалось RAFA91; 21.03.2016 в 18:20.
RAFA91 вне форума Ответить с цитированием
Старый 21.03.2016, 18:36   #18
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Ну так читайте MSDN, а не левую китайскую копию. https://msdn.microsoft.com/en-us/lib...=vs.85%29.aspx
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 21.03.2016, 20:18   #19
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

в L строках тоже не гарантируется два \0 на конце.
так что второй лучше добавлять.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 21.03.2016, 21:42   #20
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Ну wchar_t вроде везде 2-4 байта, так что меньше 2 вряд ли будет в отличии от Т.

Да, лучше "Text\0*.txt\0".
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
диалог выбора файла с консоли nastya25 Qt и кроссплатформенное программирование С/С++ 1 01.04.2015 17:16
Диалог выбора файлов БалаШагаЛ Win Api 1 21.12.2011 20:39
Как отобразить модально диалог выбора файла GetOpenFileName? bigcrush Win Api 3 13.05.2009 16:03
Диалог выбора каталога AlexeyLed Общие вопросы C/C++ 0 15.03.2009 14:16
Диалог выбора папки delphin100 Общие вопросы Delphi 2 01.06.2008 22:43