4
我的NET 2.0 Winforms應用程序在Vista和Windows 7上運行良好,但在Windows XP上調用Bitmap.GetHbitmap()
返回null
(即使使用SP3)。底層Bitmap
是一個PNG並從資源中加載。它被正確加載,因此它被降到GetHbitmap()
。我曾嘗試調用兩個重載以相同的結果。XP上的Bitmap.GetHbitmap()失敗
我的NET 2.0 Winforms應用程序在Vista和Windows 7上運行良好,但在Windows XP上調用Bitmap.GetHbitmap()
返回null
(即使使用SP3)。底層Bitmap
是一個PNG並從資源中加載。它被正確加載,因此它被降到GetHbitmap()
。我曾嘗試調用兩個重載以相同的結果。XP上的Bitmap.GetHbitmap()失敗
觀看了內存泄漏,同時調試和與.GetHBitmap
當你使用此功能,您需要手動刪除的對象的工作!
MSDN例如: http://msdn.microsoft.com/en-us/library/1dz311e4.aspx
<System.Runtime.InteropServices.DllImportAttribute("gdi32.dll")> _
Private Shared Function DeleteObject (ByVal hObject As IntPtr) As Boolean
End Function
Private Sub DemonstrateGetHbitmap()
Dim bm As New Bitmap("Picture.jpg")
Dim hBitmap As IntPtr
hBitmap = bm.GetHbitmap()
' Do something with hBitmap.
DeleteObject(hBitmap)
End Sub
和類似的問題: Image loading memory leak with C#
問候
只是爲了澄清,你沒有得到'null'但'IntPtr.Zero'相反,對? – 2011-04-28 12:53:40
嘗試更新相關的DLL文件:http://www.microsoft.com/downloads/en/details.aspx?familyid=6A63AB9C-DF12-4D41-933C-BE590FEAA05A&displaylang=zh-CN – 2011-04-28 12:53:54
糟糕。抱歉。那是對的。不是'null'而是'IntPtr.Zero'。 – wpfwannabe 2011-04-28 13:00:02