Допустимо ли использовать HBITMAP после вызова FreeLibrary? - PullRequest
0 голосов
/ 15 марта 2010

У меня есть случай, когда мне нужно загрузить растровое изображение из ресурса DLL и освободить дескриптор к нему. Механизм обновления может обновить dll, и если он будет открыт, он не сможет перезаписать его.

Допустим, у меня есть что-то вроде этого:

HINSTANCE hInst = LoadLibraryEx(resourceDll, NULL, LOAD_LIBRARY_AS_DATAFILE);
HBITMAP hBitmap = LoadBitmap(hInst, "some.bmp")
FreeLibrary(hInst);

Допустимо ли использовать hBitmap после вызова FreeLibrary?

Заранее спасибо.

1 Ответ

0 голосов
/ 15 марта 2010

Да, это действительно, чтобы выпустить DLL.

LoadBitmap делает эквивалент CreateCompatibleBitmap, который создает новый битовый массив для вашего процесса. Растровое изображение инициализируется данными из ресурса DLL. То есть информация о пикселях копируется в растровое изображение. Растровое изображение не содержит указатель на данные ресурса. После создания вы можете освободить DLL.

...