C # Маршал / Pinvoke CBitmap? - PullRequest
       8

C # Маршал / Pinvoke CBitmap?

0 голосов
/ 13 ноября 2009

Я не могу понять, как преобразовать CBitmap C ++ в растровое изображение C # или класс Image.

Мой импорт выглядит так:

[DllImport (@ "test.dll", CharSet = CharSet.Unicode)] public static extern IntPtr GetBitmap (System.IntPtr hwnd, int nBMPWIDTH, int nBMPHEIGHT);

Раздел H-файла выглядит так:

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

Как мне преобразовать Cbitmap во что-то, что я могу отобразить в C #?

Большое спасибо.

1 Ответ

1 голос
/ 13 ноября 2009

Ближайший API в .NET Framework - это Image.FromHbitmap, но для этого потребуется извлечь HBITMAP из CBitmap, чего нельзя сделать в C # (по крайней мере, не зная внутренностей CBitmap). Если вы можете изменить функцию C ++ GetBitmap, чтобы она возвращала HBITMAP, а не оболочку CBitmap, это было бы самым простым решением. Это вариант для вас?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...