Вам нужно будет знать точное количество возвращаемых байтов и размеры растрового изображения (высота, ширина и кодировка).Затем вы можете объявить его в C # как:
[DllImport("yourlib.dll")]
private static extern IntPtr GetCurrentImage();
Получаемый вами IntPtr может использоваться с Marshal.Copy
, чтобы получить необработанные байты:
byte[] buffer = new byte[length];
IntPtr beginPtr = GetCurrentImage();
Marshal.Copy(beginPtr, buffer,0,length);
Наконец, объявите Bitmap с размерами вашего изображения и используемым PixelFormat (если это нестандартный пиксельный формат, вам, возможно, придется выполнить какое-то преобразование самостоятельно).Затем вы можете скопировать данные в необработанные байты растрового изображения, используя LockBits , чтобы получить экземпляр BitmapData , который указывает на необработанные данные растрового изображения.