Форум: "WinAPI";
Текущий архив: 2005.02.06;
Скачать: [xml.tar.bz2];
Вниз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 вся ветка
Форум: "WinAPI";
Текущий архив: 2005.02.06;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.04 c