Копирование со смещением из неуправляемой памяти - C#
Формулировка задачи:
Доброго времени суток. Столкнулся с проблемой.
Имеется Dll библиотека которая возвращает указатель (IntPtr) на следующую структуру Dann:
Есть необходимость записывать в файл массив VR[1024] без переменной int AttIF.
Запись в файл осуществляю через mFileStream.Write(buffer,x,y).
Возможно ли скопировать в буфер byte[4096] из неуправляемой памяти по указателю на структуру Dann,
который предоставляет Dll, со смещением +4.???
Как это например позволяет Marshal.Copy(IntPtr(sourse), buffer(destination), 0(offset in destination), 4096(count of byte));
Способ обойти эту проблему через преобразование в структуру а потом в буфер занимает много времени.
Заранее благодарю за помощь
[StructLayout(LayoutKind.Sequential)] struct Dann { public int AttIF; // (4 байта) // значение аттенюатора [MarshalAs(UnmanagedType.ByValArray, SizeConst = 1024)] public VR[] DVR; } [StructLayout(LayoutKind.Sequential)] struct VR { public ushort I; // I временная компонента (2 байта) public ushort Q; // Q временная компонента (2 байта) };
Решение задачи: «Копирование со смещением из неуправляемой памяти»
textual
Листинг программы
IntPtr.Add()
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д