Форум: "WinAPI";
Текущий архив: 2003.07.10;
Скачать: [xml.tar.bz2];
ВнизAtom Найти похожие ветки
← →
X-RayMan (2003-05-10 22:01) [0]Народ, объясните, plz, что такое Atom. Зачем надо GlobalAddAtom и т.д. И почему, когда таблица атомов забита, нельзя запустить ни одно приложение (где-то я такое читал).
← →
Ihor Osov'yak (2003-05-11 14:32) [1]Атом - целочисленный индекс, который однозначно идентифицирует
строку символов в так называемой таблице атомов.
Таблица атомов хранит не более одной копии данной строки. Если строка уже присутствует, то возвращается значение индекса существующего атома и увеличивает счетчик ссылок на соотв. строку на единицу. Можно сказать, что система предоставляет механизм для гарантированного отсутствия дубликатов строк в памяти и быстрого доступа к ним по индексу. Как это использовать - дело программиста. Например, я это дело использовал для маркировки окон (хук на активацию окна, мне нужно было знать получаю я это окно впервые в руки или уже имел). Еще пример - можно использовать для отметки того факта, что программа уже когда-то запускалась с момента перезагрузки системы - через регистрацию глобального атома (см. GlobalAddAtom и GlobalFindAtom..)
Зы. Ходят слухи, что DDE также использует механизм атомов. Также вполне возможно что этот механизм используется системой при запуске приложений - это по поводу "нельзя запустить". Но это предположения - я не изучал этого вопроса..
← →
Polevi (2003-05-11 19:02) [2]эти слухи в хелпе ходят
The most typical use for atoms is in DDE applications. In the DDE protocol, applications use global atoms to identify the applications exchanging data, the nature of the data being exchanged, and the actual data items being exchanged. For more information about DDE and for examples that show how to use atoms, see Dynamic Data Exchange.
← →
Ihor Osov'yak (2003-05-11 19:37) [3]да , еще ... Вспомнил - при создании наследника TWinConrol работа с атомами используется для "привязки" инстанции класса к соотв. окошку - см. function InitWndProc, procedure TWinControl.CreateWnd; в controls.pas
..
Так что если "таблицу переполнить", то делфийское с GUI точно уж не запустится :-)
← →
X-RayMan (2003-05-11 22:10) [4]Сенкс! :)
← →
Игорь Шевченко (2003-05-12 10:23) [5]И для полноты: атомы используются для регистрации оконных классов. Так что если таблица переполнится, то запустить что-либо вряд ли будет возможно.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2003.07.10;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.007 c