Преобразование типов C# при использовании CreateDIBSection

Сначала, пожалуйста, прочитайте ссылку

Чтобы использовать CreateDIBSection в C#, я определил вот так.

[DllImport("gdi32.dll", EntryPoint = "CreateDIBSection")]
public static extern IntPtr CreateDIBSection(IntPtr hdc, ref BITMAPINFO pbmi,
                     uint iUsage, out IntPtr ppvBits, IntPtr hSection, uint dwOffset);

И я также определил тип структуры, как я узнал из ссылки, как это

public unsafe struct MY_BINFO
{
    [MarshalAs(UnmanagedType.U4)]
    public fixed uint bmiColors[3]; 
}

Проблема связана с MYBITMAPINFO, который я определил.

[StructLayout(LayoutKind.Sequential)]
public unsafe struct MYBITMAPINFO 
{
   public BITMAPINFOHEADER bmiHeader; 
   [MarshalAs(UnmanagedType.U4)]
   public fixed uint bmiColors[3]; 
}

Когда я вызываю функцию CreateDIBSection, MYBITMAPINFO преобразуется в тип BITMAPINFO следующим образом [LINK_1]

CreateDibSection(hdc, (const BITMAPINFO* )&dibInfo, ... ) //C++ code

Однако я не знаю, как написать код C#, который делает то же самое, что и код выше (преобразование типов из MYBITMAPINFO в BITMAPINFO)

Спасибо за чтение.

0 ответов

Другие вопросы по тегам