![]() |
|
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]()
|
|
| anwe |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 748 Регистрация: 2.9.2006 Репутация: 4 Всего: 23 |
При работе с программой WinSight, что в борландовском пакете, некоторые сообщения выдаются с буквой A или W на конце, как то TVM_GETITEMA, TVM_GETITEMW.
В борландовском же SDK есть лишь TVM_GETITEM. Чем они отличаются между собой и от TVM_GETITEM? По-моему суть их одинакова... |
|||
|
||||
| dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 7 Всего: 158 |
A - ansi-строки
W - Unicode а компилятор подставляет нужное в зависимости от опций проекта. глянь в хидеры:
Добавлено @ 23:19 ой. дельфи ж... |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 30 Всего: 484 |
Для дельфи функция без окончания всегда равна A.
Хотя можно создать свой модуль, где будут использоваться W аналоги, или прямо использовать функции с W. А разница - да. A - функции, работающие с ANSI строками, W - с юникодными строками. Добавлено @ 08:43 Да. Добавлю ещё, что разная внутренняя реализация в виндах NT и 9х. В 9х виндах W-функции конвертят строку в анси и вызывают A-функции. В NT всё наоборот - A-функции конвертят строку в юникод и вызывают W-функции. |
|||
|
||||
| anwe |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 748 Регистрация: 2.9.2006 Репутация: 4 Всего: 23 |
Спасибо!
Значит сама суть их одинакова. Но... Почему же другие сообщения (которых большая часть) выдаются без этих A и W? Это связано с какими-то определенными контролами (окнами)? |
|||
|
||||
| anwe |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 748 Регистрация: 2.9.2006 Репутация: 4 Всего: 23 |
Похоже, все-таки, их суть не так уж одинакова. Пытаясь отловить сообщение TVM_GETITEM (в ХР), ничего не получается. Если же написать TVM_GETITEMW, то срабатывает, TVM_GETITEMA - выдает ошибку при компиляции.
Значит
|
|||
|
||||
| dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 7 Всего: 158 |
для начала, это не функция, а сообщение. а ошибки компиляции не зависят от особенностей работы ОС.
|
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 13 Всего: 146 |
Есть еще вопросы? -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| Yanis |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: 13 Всего: 111 |
anwe
Сам понял, что написал? Как раз твои рассуждения и подтверждают, что все версии Windows начиная с NT ожидают в качестве параметров своих функций wide строки. И вообще вся внутренняя работа этих платформ так или иначе манипулирующая строками использует именно wide строки. Неверить словам Snowy я невижу причин, да и в книжках умных написано, что это так. У того же Рихтера например. Советую почитать. Добавлено @ 09:26
Если ты имеешь ввиду функции такие как ChangeDisplaySettings, MessageBox и т.д. которые так или иначе используют строки, то вызывая эти функции ты всёравно ссылаешься на их ANSI версии. Потому как объявлены они так:
Внимательно посмотрев можно заметить букву A на конце. Если же ты имеешь ввиду под "большей частью" функции, например такие как DestroyCaret, DestroyCursor, EnumThreadWindows и т.д., то они конечно существуют в одном варианте ибо строк не касаются. |
||||
|
|||||
| anwe |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 748 Регистрация: 2.9.2006 Репутация: 4 Всего: 23 |
Ответ получен: они не касаются срок. Спасибо. |
|||
|
||||
![]()
|
| Правила форума "Delphi: WinAPI и системное программирование" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
| 1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |