连接到命名管道时,CreateFile()返回错误32(SHARING_VIOLATION)

时间:2011-05-25 06:51:02

标签: vb6 named-pipes createfile

我一直在努力使用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()错了吗?

1 个答案:

答案 0 :(得分:0)

问题全部解决了。 这是一个Unicode / ANSI问题。未正确解析文件/管道名称字符串。请改用CreateFileA。