CreateFile () возвращает ошибку 32 (SHARING_VIOLATION) при соединении с именованным каналом - PullRequest
0 голосов
/ 25 мая 2011

Я действительно некоторое время боролся с именованными каналами 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 голосов
/ 26 мая 2011

Проблема все решена.Это была проблема с Unicode / ANSI.Строка имени файла / канала не анализируется правильно.Вместо этого используйте CreateFileA.

...