System::Drawing::Bitmaps
私は現在、マネージC++コードのdllに配列を持っています。アンマネージ(ネイティブ)C++からマネージC++のメソッドを呼び出せるようにしたいと思います。問題は、配列をアンマネージC++に戻す方法です。
GetHbitmap()
を返すマネージC++ビットマップを呼び出すことができますIntPtr
。IntPtrの配列を渡す必要がありますか?これを行うための最良の方法はよくわかりません。明確にするために、私はこれを持っています:
マネージC++メソッド:
void GetBitmaps(<????>* bitmaps)
{
//Calling into C# to get the bitmaps
array<System::Drawing::Bitmap^>^ bmp=ct->DataGetBitmaps(gcnew String(SessionID));
for(int i=0;i<bmp.Length;i++)
{
System::Drawing::Bitmap^ bm=(System::Drawing::Bitmap^)bmp.GetValue(i);
IntPtr hBmp=bm->GetHbitmap();
}
//So now how to I convert the hBmp to an array value that I can then pass back to unmanaged C++(hence the <????> question for the type)
}
HBITMAPの配列ですか?もしそうなら、どのようにしてIntPtr
hBmpをその配列に変換できますか?
マネージC++コードはすべてうまく機能し、ビットマップの配列を正しく取得します。しかし、アンマネージC ++がGetBitmapsメソッドを呼び出すときに、これらのビットマップをアンマネージC++に戻す必要があります。渡す必要のある変数のタイプがわかりません。渡したら、アンマネージC ++で使用できるタイプに変換するにはどうすればよいですか?