сериализация из неуправляемой структуры в Stream в C ++ / CLI - PullRequest
1 голос
/ 23 июня 2010

Я изучаю C ++ / CLI и застрял с проблемой.У меня есть файл заголовка, который выглядит как

     typedef struct _DATA_INFO {     
       WORD ONE
       WORD TWO
       WORD THREE
      } DATA_INFO

    public ref class ManagedDataInfo
    {
     DATA_INFO* info;
     public ManagedDataInfo()
    {
     info=new DATA_INFO();
    }
    public void Write(Stream^ stream)
    {
//       stream.Write(content of info)
     // here i want to write content of info to stream
    }

}

Здесь я хочу скопировать содержимое info в поток в методе Write, но попробую сделать это.

Ответы [ 2 ]

2 голосов
/ 14 января 2011

Вам нужен этот метод: Marshal.StructureToPtr . Этот метод преобразует структуру в последовательность байтов. Затем вы можете написать, используя один из методов Stream.Write.

1 голос
/ 14 января 2011

Поток обеспечивает общее представление последовательности байтов. Это означает, что вам нужно сериализовать информационный объект в последовательность байтов. Для создания байтового массива используйте метод Marshal.Copy . Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...