我一直在努力使用VB6命名管道。 这条线在很大程度上起作用:
CallNamedPipe(szPipeName, Header(0), 2, bArray(0), numBytes, cbRead, 30000)
管道服务器确实收到写入的2个字节。但是这个功能不是我想要使用的。我需要使用CreateFile()+ WriteFile()组合。现在我无法让这个工作:
pipeHandle = CreateFile(szPipeName, GENERIC_READ Or GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0&)
它返回-1,表示失败。没有其他任何改变,所以我不明白为什么它失败了。 然后我在现有文件C:\ test.txt:
上尝试了它pipeHandle = CreateFile("C:\\test.txt", GENERIC_READ Or GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0&)
它仍然失败并返回-1。
我使用CreateFile()错了吗?
答案 0 :(得分:0)
问题全部解决了。 这是一个Unicode / ANSI问题。未正确解析文件/管道名称字符串。请改用CreateFileA。