我无法弄清楚如何将C ++ CBitmap编组为C#Bitmap或Image类。

我的导入看起来像这样:

[DllImport(@“ test.dll”,CharSet = CharSet.Unicode)]
        公共静态外部IntPtr GetBitmap(System.IntPtr hwnd,int nBMPWIDTH,int nBMPHEIGHT);

H文件部分如下所示:

Cbitmap * GetBitmap(HWND hwnd,int nBMPWIDTH,int nBMPHEIGHT);

如何将Cbitmap转换为可以在C#中显示的内容?

非常感谢。

最佳答案

.NET Framework中最接近的API是Image.FromHbitmap,但这需要您从CBitmap中提取HBITMAP,而这在C#中是无法做到的(至少在不了解CBitmap内部的情况下)。如果您可以修改C ​​++ GetBitmap函数以返回HBITMAP而不是CBitmap包装器,那将是最简单的解决方案。那是您的选择吗?

10-08 08:48