Копирование со смещением из неуправляемой памяти - C#

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток. Столкнулся с проблемой. Имеется Dll библиотека которая возвращает указатель (IntPtr) на следующую структуру Dann:
    [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 байта)
    };
Есть необходимость записывать в файл массив 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)); Способ обойти эту проблему через преобразование в структуру а потом в буфер занимает много времени. Заранее благодарю за помощь

Решение задачи: «Копирование со смещением из неуправляемой памяти»

textual
Листинг программы
IntPtr.Add()

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.286 из 5
Похожие ответы