Re: Получение картинки из void*
От: Мишень-сан  
Дата: 07.05.10 14:25
Оценка:
Здравствуйте, 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
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.