Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.02.06;
Скачать: CL | DM;

Вниз

GlobalAddAtom - Limitations ?   Найти похожие ветки 

 
GuAV ©   (2004-12-20 17:44) [0]

RegisterHotKey, при вызове из dll требует значение возвращённое GlobalAddAtom:

A shared dynamic-link library (DLL) must specify a value in the range 0xC000 through 0xFFFF (the range returned by the GlobalAddAtom function).

Число этих атомов сильно ограниченно:

The Windows global atom table, which can contain up to 37 entries, is available to all applications.

Означает ли это что всего может быть меньше 37 hotkeys в dllах, с учётом того что Global Atoms вероято ещё где-то используются ?
Можно ли как-нибудь обойти это ограничение ?


 
Игорь Шевченко ©   (2004-12-20 18:10) [1]


> The Windows global atom table, which can contain up to 37
> entries, is available to all applications


Это не по Win31 справка ? Насколько мне известно, в Win32 ограничений такого рода нет, так как через ту же таблицу работает функция RegisterWindowMessage, RegisterHotKey и еще ряд функций.

С уважением,


 
GuAV ©   (2004-12-20 18:37) [2]

Игорь Шевченко ©   (20.12.04 18:10) [1]
Это не по Win31 справка ?


Это та справка. что идёт с Dlephi

help->Windows SDK->Index->Global Atom Table

в MSDN вообще нет информации о размере этой таблицы.

Win32 ограничений такого рода нет
Спасибо.

Моя проверка тоже показала, что справка врёт.
var A: array[word] of ATOM; N: Word;
begin
 N := Word(-1);
 repeat
   Inc(N);
   A[N]:=GlobalAddAtom(PChar("my atom #"+IntToHex(N, 4)));
 until A[N] = 0;
 Caption := IntToStr(N); // получилось  2340
 for N := N - 1 downto 0 do
   GlobalDeleteAtom(A[N]);
end;


Кстати про локальные таблицы атомов даже в MSDN сказано

Atom tables are implemented as hash tables. By default, a local atom table uses 37 buckets for its hash table. However, you can change the number of buckets used by calling the InitAtomTable function.

Что оказалось тоже неправда.



Страницы: 1 вся ветка

Текущий архив: 2005.02.06;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.025 c
1-1106303298
Tomkat
2005-01-21 13:28
2005.02.06
Net Send из приложения


1-1106547049
dreamse
2005-01-24 09:10
2005.02.06
Как извлеч расширение из имени файла


4-1103546978
lovres
2004-12-20 15:49
2005.02.06
Как узнать запущено ли приложение? Подскажите функцию


14-1105970093
kaZaNoVa
2005-01-17 16:54
2005.02.06
Online проверка на вирусы


6-1101274782
leonidus
2004-11-24 08:39
2005.02.06
Переход с Indy 8 на Indy 9