Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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.009 c
1-31179
Тимур
2003-06-27 17:56
2003.07.10
Перевод формулы


3-31157
Orpheus
2003-06-19 08:12
2003.07.10
Проблема с Commit в IB


14-31429
Andrey
2003-06-18 16:31
2003.07.10
Стандартный способ передачи параметров в Dll


3-31098
xxxCrazyManxxx
2003-06-17 12:02
2003.07.10
Обращение к хранимой процедуре


3-31149
Oleg
2003-06-18 17:39
2003.07.10
Ошибка из-за индекса





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский