在 C++/CLI 中从非托管结构序列化到 Stream

发布于 2024-09-06 09:18:06 字数 529 浏览 4 评论 0原文

我正在学习 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 方法中的流中,但卡住了如何做到这一点。

I am learning C++/CLI and stuck with a problem.
I have a header file that looks like

     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
    }

}

Here I want to copy the content of info to the stream in the Write method but stuck how to do that.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

不一样的天空 2024-09-13 09:18:06

您需要此方法:Marshal.StructureToPtr。此方法会将结构转换为字节序列。然后您可以使用 Stream.Write 方法之一进行写入。

You need this method: Marshal.StructureToPtr. This method will convert structure to sequence of bytes. Then you can write then using one of Stream.Write method.

老子叫无熙 2024-09-13 09:18:06

流提供字节序列的通用视图。
因此,这意味着您需要将信息对象序列化为字节序列。
要制作字节数组,请使用 Marshal.Copy 方法。
希望这有帮助。

Stream provides a generic view of a sequence of bytes.
So that means you need to serialize the info object to a sequence of bytes.
To make byte array use Marshal.Copy method.
Hope this helps.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文