System::Drawing::Bitmaps
我目前在托管 C++ 代码中有一个 dll数组。我希望能够从非托管(本机)C++ 调用托管 C++ 中的方法。问题是如何将数组传递回非托管 C++?
我可以调用GetHbitmap()
托管 C++ 位图,该位图返回IntPtr
. 我应该传递一个 IntPtrs 数组吗?不太确定最好的方法来做到这一点。所以要清楚我有这个:
托管 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)
}
是一个 HBITMAPS 数组吗?如果是这样,您如何将IntPtr
hBmp 转换为该数组?
托管 C++ 代码运行良好,并且正确获取位图数组。但是现在当非托管 C++ 调用 GetBitmaps 方法时,我需要将这些位图返回到非托管 C++。我不知道我应该传入什么类型的变量,然后一旦我传入它,我该怎么做才能将它转换为非托管 C++ 可以使用的类型?