Как можно получить строку UTF-8 / Unicode из GetOpenFileName?

#c #getopenfilename #comdlg32

#c #getopenfilename #comdlg32

Вопрос:

Я разрабатываю приложение на MinGW / C , которое использует обычные диалоговые окна Windows. Возникла необходимость собрать имя файла, в котором могут содержаться символы, отличные от ASCII. Есть ли флаг или другой вариант для получения имени файла в Unicode или, предпочтительно, UTF-8?

Ответ №1:

Вызовите GetOpenFileNameW. Вы можете сделать это без преобразования всего вашего приложения в Unicode, что может быть наиболее целесообразным решением.

Windows API поставляется в двух вариантах: ANSI и Unicode. В первом есть функции с суффиксом A. Последние имеют суффикс W. В настоящее время вы используете первое.

Комментарии:

1. Т.е. GetOpenFileName это действительно макрос, который по умолчанию расширяется до GetOpenFileNameA .