
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.3] |
![]() |
|
Страницы: (2) [1] 2 все ( Перейти к последнему сообщению ) |
Сообщ.
#1
,
|
|
|
Народ, просвятите в чем разница между этими функциями. Я понял лишь одно у них разные типы входных строковых параметров. И так вопрос: зачем это нужно??? В своей проге я использовал только функции без префиксов(тоесть без A и W), к чему это может привести?
![]() P.S. только пожалуйста не давайте ссылок на MSDN, обясните по русски если можно... ![]() P.P.S. простите за ламерский вопрос... |
![]() |
Сообщ.
#2
,
|
|
CreateFileA - принимает имя файла в анси, W - в Юникод формате. Вот и вся разница. CreateFile и CreateFileA - в дельфи - это одно и тоже.
|
Сообщ.
#3
,
|
|
|
CreateFile это псевдоним
|
Сообщ.
#4
,
|
|
|
А где и в каких случаях может использоватся функция CreateFileW, да и зачем собственно передавать что-то в юникод формате??? я че то не понимаю...
|
Сообщ.
#5
,
|
|
|
например, если операционка поддерживает много языков, то и имена файлов можно так же обзывать. в 256 кодов нереально сунуть много символов (из всех-то языков). Для этого нужны юникоды, в который влезает 65535 символов + #0, чего вполне хватит на несколько языков, да и останется еще
Вот чтобы была возможность передавать такие имена и нужны функции, читающие юникод |
Сообщ.
#6
,
|
|
|
BenQ
В NT системах всегда используется xxxW. Даже если в программе используется ansi, то функция xxxA преобразовывает текст в юникод и вызывает xxxW. |
Сообщ.
#7
,
|
|
|
Только в Win98/Me например юникод поддерживается плохо, могут возникнуть проблемы. А WinCE вроде только юникод и понимает.
Если планируешь чтобы прога была мультиязычной, то возможно есть смысл подумать про UniCode. |
Сообщ.
#8
,
|
|
|
Так и еще вопросик: моя программа написана только с использование вызовов функций без префиксов(A и W).
Будет ли она корректно работать на разноязычных системах. Например если Windows китайская или итальянская какая нибудь стоит, то моя прога будет корректно работать???. И еще вопрос: допустим в проге есть вызов MessageBox(0,'некоторое сообщение на русском','тема на русском',mb_ok), то как это сообщение отобразится допустим в итальянской версии винды(где русский не установлен). Или если текст английский то он будет корректно отображен??? |
![]() |
Сообщ.
#9
,
|
|
Цитата BenQ @ еще вопрос: допустим в проге есть вызов MessageBox(0,'некоторое сообщение на русском','тема на русском',mb_ok), то как это сообщение отобразится допустим в итальянской версии винды(где русский не установлен). кракозябликами это будет отображено. Цитата BenQ @ Или если текст английский то он будет корректно отображен??? да |
Сообщ.
#10
,
|
|
|
Цитата BenQ @ моя программа написана только с использование вызовов функций без префиксов(A и W) Без префикса = с префиксом A Добавлено Кстати, префикс - это то, что идет перед словом, а после слов - постфикс ![]() |
Сообщ.
#11
,
|
|
|
А как дело обстоит с названиями папок и файлов в разноязычных системах? Например папки автозагрузки, temp, там также называются или по другому? И хотелось бы знать как там названы ключи в реестре, тоесть иерархия с названиями параметров такая же?(к примеру я допустим знаю где хранится определенный системный ключ в реестре(на рускоязычной системе), дак вот путь к этому ключу допустим в итальянской системе будет таким же???).
И вообще в китайских(и т.д. и т.п.) системах названия всех системных папок и ключей в реестре на английском или на китайском??? |
Сообщ.
#12
,
|
|
|
Дельфи ниже Delphi for .NET весьма плохо дружит с Юникодом, все API операции ведутся через ANSI.
В файле Windows.pas алиасы мапируются на хххА прототипы. |
Сообщ.
#13
,
|
|
|
Цитата BenQ @ А как дело обстоит с названиями папок и файлов в разноязычных системах? Например папки автозагрузки, temp, там также называются или по другому? И хотелось бы знать как там названы ключи в реестре, тоесть иерархия с названиями параметров такая же?(к примеру я допустим знаю где хранится определенный системный ключ в реестре(на рускоязычной системе), дак вот путь к этому ключу допустим в итальянской системе будет таким же???). И вообще в китайских(и т.д. и т.п.) системах названия всех системных папок и ключей в реестре на английском или на китайском??? |
Сообщ.
#14
,
|
|
|
Цитата BenQ @ А как дело обстоит с названиями папок и файлов в разноязычных системах? Например папки автозагрузки, temp, там также называются или по другому? И хотелось бы знать как там названы ключи в реестре, тоесть иерархия с названиями параметров такая же?(к примеру я допустим знаю где хранится определенный системный ключ в реестре(на рускоязычной системе), дак вот путь к этому ключу допустим в итальянской системе будет таким же???). В реестр лезть за этим не обязательно, а может даже и не совсем желательно. Есть функция SHGetSpecialFolderLocation. |
Сообщ.
#15
,
|
|
|
Цитата s-mike @ В реестр лезть за этим не обязательно, а может даже и не совсем желательно. Есть функция SHGetSpecialFolderLocation. Дело в том что моя прога хранит свои настройки в реестре. И получает некоторые системные настройки из реестра дак вот отсюда и вопрос: Цитата s-mike @ хотелось бы знать как там названы ключи в реестре, тоесть иерархия с названиями параметров такая же?(к примеру я допустим знаю где хранится определенный системный ключ в реестре(на рускоязычной системе), дак вот путь к этому ключу допустим в итальянской системе будет таким же???). Кто может объяснтить этот момент? |