微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

VB6中的命名管道:CallNamedPipe失败,错误87

如何解决VB6中的命名管道:CallNamedPipe失败,错误87

|| 我在VB6中使用CallNamedPipe()将消息发送到名为C#的管道服务器。 在服务器端,通过以下方式创建管道:
new NamedPipeServerStream(pipeName,PipeDirection.InOut,numThreads);
在客户端上,我使用此调用写入2个字节:
  Dim Header(1) As Byte
  Header(0) = 0
  Header(1) = 6
  res = CallNamedPipe(szPipeName,Header(0),2,bArray(0),numBytes,cbRead,3000)
服务器看到管道已连接,因为WaitForConnection()确实返回了,但是无法读取任何字节。 在客户端:CallNamedPipe失败并返回错误代码87(参数无效?) 我的问题是: 管道创建的是字节模式还是消息模式类型? MSDN说,如果管道为字节模式,则CallNamedPipe()失败。 有没有一种方法可以写入VB6中的字节模式管道。我是否必须更改服务器代码才能创建消息模式管道? 如何使我的VB6代码正常工作?     

解决方法

根据文档,当您使用该构造函数时,管道处于字节模式。我对非.NET管道调用了解不多,但是如果VB6需要,我看不出为什么不将服务器设置为消息模式管道的任何原因。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。