位图获取H位图失败在XP上

4

我的.NET 2.0 Winforms应用程序在Vista和Windows 7上运行得非常好,但在Windows XP上(即使是SP3),调用Bitmap.GetHbitmap()返回null。底层的Bitmap是一个PNG,并从资源中加载。它被正确地加载,因此问题出在GetHbitmap()上。我已经尝试使用相同的结果调用了两个重载。


1
只是想澄清一下,你得到的不是 null 而是 IntPtr.Zero,对吗? - Chris Haas
抱歉,那是正确的。不是“null”,而是“IntPtr.Zero”。 - wpfwannabe
2
如果这个问题不再相关,你能否关闭它? - justin.m.chase
当然可以,但是关闭的原因都不符合我的关闭意图。 - wpfwannabe
显示剩余4条评论
1个回答

0

在调试和使用.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

相关问题请参考: 使用C#加载图像时的内存泄漏 敬礼

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接