0

私はしばらくの間、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() を間違って使用していますか?

4

1 に答える 1

0

問題はすべて解決しました。これは Unicode/ANSI の問題でした。ファイル/パイプ名の文字列が正しく解析されていません。代わりに CreateFileA を使用してください。

于 2011-05-26T03:40:37.993 に答える