Преобразование структуры c# к массиву байт
От: shvchenkoalexey  
Дата: 03.02.10 10:19
Оценка:
имеется код
//структура которую надо преобразовать
[StructLayout(LayoutKind.Sequential, Pack = 1)]
struct IMAGE_DATA_DIRECTORY
{
public byte b;
public byte[] b2
}

.....
//преобразовываю так

IMAGE_DATA_DIRECTORY user;
user.b = 1;
user.b4=new byte[]{2,3,4,5,6};



IntPtr SitList;
unsafe
{
SitList = Marshal.AllocHGlobal(Marshal.SizeOf(user));
byte[] buffer = new byte[Marshal.SizeOf(user)];
GCHandle handle = GCHandle.Alloc(buffer, GCHandleType.Pinned);
Marshal.StructureToPtr(user, SitList, false);
Marshal.StructureToPtr(user, handle.AddrOfPinnedObject(), false);
Marshal.Copy(handle.AddrOfPinnedObject(), buffer, 0, buffer.Length);
handle.Free();
}

при этом в buffer заместо массива судя повсему пишется адрес массива
Как сделать так чтобы записывался сам массив?
c# структуры преобразование
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.