我有一个相对简单的任务。我必须向一些C应用程序提供一种方法来调用Python应用程序,传递一些数据进行处理,并在Python任务结束时接收结果(两个都是GUI应用程序)。在
我认为管道可以很好地完成这项工作,在C端创建一个命名管道
using (NamedPipeServerStream pipeServer =
new NamedPipeServerStream("Demo", PipeDirection.InOut))
{// Wait for a client to connect
pipeServer.WaitForConnection();
应用程序可以p/调用python应用程序,传递sysarg中的管道名称等
在python方面,一旦知道管道名称并使用win32pipe类似于
^{pr2}$应该行得通。在
会发生的情况是,C检测到传入的连接,但是python端由于一个臭名昭著的错误而“崩溃”:(87,'CallNmaedPipe“,'the parameter is incorrect')。在
我不是管道方面的专家,我不知道这里可能出了什么问题。在
CallNamedPipe需要在pipe_TYPE_消息中创建的管道;您的C代码在pipe_TYPE_BYTE中创建管道。因此,您要么需要在C#中以消息模式创建一个管道(使用期望使用PipeTransmissionMode的构造函数),要么使用WriteFile将数据放入管道中。在
相关问题 更多 >
编程相关推荐