2012-09-29 189 views
1

我無法找到一個在matlab中創建Windows命名管道的示例。命名管道Matlab

有關如何編程或在哪裏尋找的建議?

+1

您能描述一下您嘗試過的以及失敗的方式嗎?否則,這個問題是不完整的.. – angainor

+0

我曾經認爲,如果沒有內置的方式在matlab中做,那麼可以使用編譯成mex/dll的c/++。 – BAR

回答

5

使用.NET的System.IO.Pipes可能是最簡單的方法,比編寫MEX文件調用Win32 API更容易。 Matlab允許您直接從M代碼調用.NET,並且對象被管理,因此資源清理將變得更加容易。 .NET 3.5和更新的支持命名管道。

生成的M代碼看起來像這樣。 (對不起,我不此刻有Matlab的所以不能對其進行測試。)

NET.addAssembly('System.Core'); %# might be superfluous 
pipeStream = System.IO.Pipes.NamedPipeServerStream('testpipe', System.IO.Pipes.PipeDirection.Out); 

現在,我認爲.NET是訪問本地Windows功能是Matlab的不直接暴露最簡單的方法。所以對於這樣的事情,首先要嘗試的是尋找在C#中使用它的例子。如果可以使用.NET標準庫功能在C#中完成,您通常可以直接將其轉換爲M代碼。例如。我通過谷歌搜索找到了一個「創建命名管道.net」並獲得this example。羅蘭討論了這種技術here