2

CreateFile()がfilenameパラメーターでうまく機能しないことがわかったときに、CreateFileが既存の名前付きパイプを開くことができないという問題のトラブルシューティングを行っていました。私のコードは次のとおりです。

Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileW" ( _
ByVal lpFileName As String, _
ByVal dwDesiredAccess As Long, _
ByVal dwShareMode As Long, _
ByVal lpSecurityAttributes As Long, _
ByVal dwCreationDisposition As Long, _
ByVal dwFlagsAndAttributes As Long, _
ByVal hTemplateFile As Long) As Long

pipeHandle = CreateFile("C:\\test.txt", GENERIC_READ Or GENERIC_WRITE, 0&, 0&, CREATE_ALWAYS, 0&, 0&)

C:\にファイルを作成するのではなく、現在のVB作業ディレクトリにファイル名が文字化けしたファイルを作成します。CreateFileは、指定されたファイル名文字列を認識および解析できないようです。

なぜこうなった?私はWindows7でVB6を使用しています(いくつかのトリックを使用してインストールしました)。それが問題を引き起こしている可能性がありますか?

4

1 に答える 1

4

久しぶりですが、これはansi/unicodeのことだと思います。CreateFileA関数を試して、何が起こるかを確認してください。(また、IIRC、あなたは\ ....を逃れることはありませんが、私がVB6で真剣にコーディングしてから約7年が経ちました。)

于 2011-05-26T02:19:42.217 に答える