0

Dll とそのヘッダー ファイルがあり、C# で使用する C++ で COM ラッパーを作成しようとしています。ほとんどの関数は、または
を返すため、非常に単純でした。intstring

ヘッダーファイルにこの構造体があります。

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 で使用する方法です。

4

2 に答える 2

1

パラメータは である必要がありますout IntPtr

GetBMP次に、呼び出してから呼び出しBitmap.FromHbitmapてビットマップを返す追加の関数を作成できます。このような関数はDeleteObject、元のhbitmap.

于 2013-05-01T15:38:59.183 に答える