У меня возникли проблемы с поиском примера создания окна с именем pipe в Matlab.

Есть предложения, как программировать или где искать?

1
BAR 29 Сен 2012 в 07:56
2
Можете ли вы описать, что вы пробовали и как это не удалось? В остальном вопрос несколько неполный ..
 – 
angainor
29 Сен 2012 в 10:33
Я подумал, что если в Matlab нет встроенного способа сделать это, можно использовать c / ++, скомпилированный в mex / dll.
 – 
BAR
30 Сен 2012 в 00:41

1 ответ

Лучший ответ

Использование System.IO.Pipes.NET, вероятно, Самый простой выход из коробки, проще, чем написать файл MEX для вызова Win32 API. Matlab позволяет вам вызывать .NET прямо из M-кода, а объекты управляются, поэтому очистка ресурсов будет проще. .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 #. Если это можно сделать на C # с использованием функций стандартной библиотеки .NET, вы часто можете напрямую перевести это в M-код. Например. Я нашел это в Google по запросу "создать именованный канал .net" и получить этот пример. Лорен обсуждает эту технику здесь < / а>.

5
Andrew Janke 30 Сен 2012 в 04:41