簡體   English   中英

如何通過管道發送/接收具有復雜數據結構的數據?

[英]How to send/receive data with complicated data structure via pipe?

HRESULT GrabberCB :: SampleCB ( double SampleTime , IMediaSample * pSample )   {      

How to send the pSample content via pipe?

}  

閱讀此示例后,我知道如何通過WriteFile/ReadFile發送/接收string

http://msdn.microsoft.com/zh-CN/library/aa365592%28v=VS.85%29.aspx

但是如何發送pSample

您需要先對數據進行序列化,然后再通過任何傳輸發送,另一方面,您需要對數據進行反序列化以將其轉換回去。 根據數據的簡單/復雜,有很多方法可以做到這一點。

您可以自己動手或使用某種框架,例如Google Protocol Buffers或COM。 沒有正確的答案,這完全取決於您要執行的操作,數據的復雜程度以及所需的性能。

為什么要嘗試通過管道發送它? 如果管道讀取器是一個COM對象,而您只是讓COM框架負責所有事情,那會容易得多。 話雖如此,您可以使用CoMarshalInterface將COM對象編組到流中(甚至是進程外)。 也許您然后可以通過管道發送該流,並使用CoUnmarshalInterface對其進行重構。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM