我有一個Dll和它的頭文件,並且我試圖在C++中使用C++創建一個COM包裝器。
對於大多數功能來說,這是非常簡單的,因爲他們返回int
或string
。HBITMAP *位圖到.net位圖
我在頭文件中有這個結構。
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 ;
}
問題顯然爲t之後在C#中如何從'HBITMAP __ *'轉換爲'System.IntPtr使用它與位圖.fromHbitmap
'GetBMP'的'[DllImport]'C#聲明是你聲明第三個參數爲'out IntPtr'的地方。 – GSerg 2013-05-01 22:31:04
沒有即時通訊不進口DLL在C#即時通訊嘗試寫入C++包裝 – 2013-05-02 06:15:52
然後,你困惑了我們所有人。 「託管包裝器」是你用C#編寫的東西。如果你正在編寫一個C++包裝器,那可能是一個COM包裝器。我編輯了你的問題來反映這一點。請隨意修改相應的編輯。 (也許你*使用託管C++?) – GSerg 2013-05-02 08:03:27