Приветствую всех. Проблема следующая.
Необходимо передать в dll на Delphi путь к файлу, dll должна нарисовать bitmap из этого файла и передать HBitmap в приложение на C#. В dll есть TImage, рисую на нем и передаю TImage.Picture.Bitmap.Handle. В принимающем приложении отрисовываю изображение по HBitmap. Но оно не рисуется, мой pictureBox.Image заливается просто белым фоном, но если перед рисованием и передачей handle в dll поставить ShowMessage или показать модальную форму все нормально отрисовывается. В чем проблема?
Пробовал передавать указатель на первый байт изображения в памяти и размер изображения. Тоже самое.
И подскажите можно как то изменить следующий код, что бы не собирать массив бай по байтам, а сразу его получить.
byte dd;<br/>
byte* ddd = ⅆ<br/>
ddd = (byte*)LibWrap.TRGOpen("D:\\111.trg", ref size);<br/>
byte[] img = new byte[size];<br/>
for (int i = 0; i < size; i++)<br/>
{<br/>
byte t = *(ddd + i);<br/>
img[i] = t;<br/>
}<br/>
Вызов dll:
public unsafe class LibWrap<br/>
{<br/>
[DllImport("TRGA.dll")]<br/>
public static extern void* TRGOpen([MarshalAs(UnmanagedType.LPStr)] string str, ref int size);<br/>
}