Здравствуйте, k0d, Вы писали:
k0d>Столкнулся с проблемой:
k0d>получаю картинку от устройства, взаимодействие через dll на с++, k0d>использую unsafe, получаю буфер с результатом в формате void* — 0x0504f7d0 k0d>Хочу загрузить картинку в PictureBox: k0d>pictureBox1.Image =Image.FromStream(new MemoryStream((byte *)result.buffer)) k0d> — сразу 3 ошибки
k0d> Pointers and fixed size buffers may only be used in an unsafe context k0d> The best overloaded method match for 'System.IO.MemoryStream.MemoryStream(int)' has some invalid arguments k0d> Argument '1': cannot convert from 'byte*' to 'int'
В .NET нет void*, есть IntPtr
Чтобы воспользоваться лысым указателем, промаршальте его (System.Runtime.InteropServices) в byte[] — для этого надо знать размер буфера, напрягите unmanaged часть
После этого можно делать MemoryStream