HBITMAP *位图到.net位图
本文关键字:位图 net HBITMAP | 更新日期: 2023-09-27 18:11:45
我有一个Dll和它的头文件,我正试图在c++中创建一个COM包装器在c#中使用。
对于大多数函数来说,它非常简单,因为它们返回的是int
或string
。
我在头文件中有这个结构体。
virtual HRESULT STDMETHODCALLTYPE GetBMP(
int Width,
int Height,
HBITMAP *Bitmap) = 0;
我的问题是,因为我的方式与我的联盟与c++我不知道如何转换HBITMAP
的东西更适合于。net风格
提前感谢,请原谅我写了一些愚蠢的事情
更新:我尝试这样做:
HBITMAP GetBMP(int Width, int Height)
{
HBITMAP bm = 0;
m_piHelper->GetBMP(Width,Height,&bm);
return bm ;
}
问题显然是之后,在c#如何转换从'HBITMAP__*'到'System。使用bitmap.fromHbitmap
参数应为out IntPtr
然后你可以创建一个额外的函数,它将调用GetBMP
,然后调用Bitmap.FromHbitmap
返回一个位图。这样的函数必须DeleteObject
原来的hbitmap
你可以试试System.IntPtr.