Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Single Post  Topic: Найти путь к папке плагина 
Author Message
CaptainFlint



PostPosted: Wed Nov 13, 2019 01:31    Post subject: Reply with quote

remittor wrote:
Ну если я китаец, который установил TC в папку c:\users\用戶名\...
что в этом случае вернёт ТС через этот аргумент?

У китайца, скорее всего, выбрана китайская локаль. Так что там вернётся та же строка в соответствующей кодировке. Гораздо интереснее, что будет, если китаец установит Тотал в папку C:\Программы\… Но таких китайцев, я подозреваю, очень немного.
Хотя да, с точки зрения Тотала это недоработка. С другой стороны, нет необходимости пользоваться именно ListSetDefaultParams. Есть ещё переменная COMMANDER_INI, из которой можно вычленить каталог расположения INI-файлов.

remittor wrote:
Снова представим, что я китаец.
Получаем UTF-16 путь через GetModuleFileNameW.
А вот дальше то что?
Использовать функцию GetPrivateProfileStringW? Но тогда нужно ini-файл перекодировать в UTF-16.

Ну, во-первых, лично я ничего плохого в UTF-16 в INI-файлах не вижу. Во-вторых, если уж мы все из себя интернациональные, то в любом случае будет глупо ограничиваться поддержкой Юникода исключительно в путях, а содержимое INI при этом держать в кодировке ANSI. А если нам потом понадобится туда какой-то путь записать? Или какую-то другую строку, потенциально содержащую международные символы? Лучше озаботиться этим заранее, чем потом патчить плагин и переконвертировать существующие INI у пользователей.

А на самом деле, даже SetPrivateProfileStringW по умолчанию создаёт INI в кодировке ANSI (по крайней мере, у меня получилось именно так), и для Юникода нужно заранее озаботиться созданием этого файла в нужной кодировке.
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
View user's profile Send private message Visit poster's website


Powered by phpBB © 2001, 2005 phpBB Group