[英]HBITMAP *Bitmap to .net Bitmap
我有一個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.IntPtr以與bitmap.fromHbitmap一起使用
該參數應為out IntPtr
。
然后,您可以創建一個附加函數,該函數將調用GetBMP
,然后調用Bitmap.FromHbitmap
以返回位圖。 然后,該函數必須將DeleteObject
hbitmap
為原始hbitmap
。
您也許應該嘗試System.IntPtr。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.