如何在vb.net中获取图像的句柄

时间:2013-07-15 13:33:36

标签: c vb.net image handle

我正在与用C编写的库连接,这需要我将图像作为Int32句柄传递。如何在VB中将图像文件表示为整数?或者,更具体地说,我如何获得资源的处理?

1 个答案:

答案 0 :(得分:0)

您可以使用Bitmap.GetHbitmap()函数为您的图片获取HBITMAP(假设您使用的是位图)。使用DeleteObject()完成后,您必须确保正确清理此值。例如(这确实来自MSDN):

[System.Runtime.InteropServices.DllImport("gdi32.dll")]
public static extern bool DeleteObject(IntPtr hObject);

...

using ( Bitmap bm = new Bitmap ( 10, 10 ) )
{
    IntPtr hBitmap = bm.GetHbitmap ();

    // Do something with hBitmap.

    DeleteObject ( hBitmap );
}

在API级别,不同类型的图像用不同的句柄表示,因此如果您使用的是图标,则必须使用图标的Handle属性。此句柄不需要被释放,因为它不是副本。