2010-03-15 31 views
0

我有一個情況,我需要從資源DLL加載位圖並釋放它的句柄。更新機制可能會更新該DLL,並將其打開將無法覆蓋它。調用FreeLibrary後可以使用HBITMAP嗎?

所以可以說我有這樣的事情:

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

是有效的調用FreeLibrary則後使用HBITMAP?

在此先感謝。

回答

0

是的,它是有效的釋放DLL。

LoadBitmap等價於CreateCompatibleBitmap,它會爲您的過程創建一個新的位圖。位圖圖像使用來自DLL資源的數據進行初始化。也就是說,像素信息被複制到位圖。位圖不包含指向資源數據的指針。一旦創建,您可以釋放該DLL。

+0

感謝很多阿德里安,會嘗試。 是什麼讓我覺得這是不是有效的是什麼,是這裏寫的:http://msdn.microsoft.com/en-us/library/ms648006(VS.85).aspx 特別是「後的應用程序加載使用資源LoadResource,系統將卸載相關的內存只有當它的模塊的所有引用是通過** ** FreeLibrary則釋放」 –

相關問題