Предлагаю обсудить необходимость сабжа и способ его хранения.
Только не путать с иконками для приложений, возможно, они будут встроены в приложения в качестве ресурсов(но ответ так и не был получен
viewtopic.php?f=1&t=1839&p=66626#p71332).
От себя могу предложить такой вариант:
Иконки хранятся в са́мой обыкновенной динамической библиотеке
Файлы иконок включаются туда при компиляции ассемблерной директивой file.
Как и в обычной библиотеке будет храниться массив структур по 2 dword-а, только вместо "имя процедуры, адрес процедуры" будет так "имя иконки, адрес иконки".
Загрузить можно как обычно с помощью
LoadLibrary.
Получить адрес с помощью
GetIconAddress(по сути то же, что и
GetProcAddress).
Например:
Code:
hIconLib = LoadLibrary('icons.obj')
pdf16_icon = GetIconAddress(hIconLib, 'pdf16')
pdf32_icon = GetIconAddress(hIconLib, 'pdf32')
Необязательно включать файлы в виде
png, можно и просто несжатый
BMP32(но, конечно, это ещё надо обсудить), всё равно файл библиотеки сожмётся, и так даже будет удобнее с ним работать.
Из очевидных плюсов:
Если библиотека уже загружена, то грузить её не надо, просто вернётся указатель.
Удобно добавлять файлы в библиотеку.
Доступ по конкретному имени, а не по номеру.