Вопрос № 57048: Здраствуйте,
раскажите мне что за атом в винапи..например функция DeleteAtom-удаляет атом какойто там :) зачем мне его удалять если я незнаю что это..момогите пожалуйсто начинающему :))...
Вопрос № 57.048
Здраствуйте,
раскажите мне что за атом в винапи..например функция DeleteAtom-удаляет атом какойто там :) зачем мне его удалять если я незнаю что это..момогите пожалуйсто начинающему :))
Отправлен: 28.09.2006, 19:16
Вопрос задал: Nu Ja (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Sergey A. Wedensky
Здравствуйте, Nu Ja!
В системе существуют таблицы атомов. Они хранит строки с
соответствующими им идентификаторами. При добавлении каждая строка
(имя атома)
получает уникальный 16-битный идентификатор, который
впоследствии можно использовать для доступа к строке.
В системе есть несколько таблиц атомов для разных целей.
Сама система использует свои (системные) таблицы атомов. Они
непосредственно не доступны из приложений, одако используются
некоторыми API-функциями. Например, форматы буфера обмена являются
атомами. Ваше приложение может добавить атом функцией RegisterClipboardFormat.
Классы окон также являются атомами. RegisterClass возвращает Вам атом.
Непосредственно доступны приложениям глобальная и локальная таблицы
атомов. Глобальная доступна всем приложениям. Локальная - только
одному.
В локальной таблице атомов можно хранить строки, часто используемые
программой, например, для экономии памяти (каждый раз, где необходимо
включить соответствующую строку, например, в структуру, нужно помнить
лишь 2 байта - идентификатор атома). Также атомы можно использовать
для оптимального поиска строк (по сути хэш-таблица).
Функция AddAtom добавляет новый атом либо увеличивает на 1 счетчик
ссылок имеющегося. DeleteAtom уменьшает счетчик ссылок на атом, если
он достигает 0, атом удалается.
Более подробно можно почитать в MSDN (см., например, "Atoms" в индексе).
Ответ отправил: Sergey A. Wedensky (статус: 3-ий класс)
Ответ отправлен: 28.09.2006, 19:44 Оценка за ответ: 5
Отвечает: ENS
Здравствуйте, Nu Ja!
Честно говоря cам ни когда не использовал. Но раз ВАМ надо , попробую помоч. Эти атомы испоьзуются в DDE
(Динамический обмен данными). Атом это символ.AddAtom - лобавляет строку символов к таблице атомов. DeleteAtom декрементирует
счетчик строки атомов. Но не стоит уделять слижком много внимания этому.
Удачного прогаммирования.
С уважанием ENS.
--------- Учение - свет!
Ответ отправил: ENS (статус: 3-ий класс)
Ответ отправлен: 29.09.2006, 16:16 Оценка за ответ: 4 Комментарий оценки: спасибо я это уже понял..ну всё равно поставлю вам 4..а вдруг бы незнал :)