產生亂碼名文件我排除問題在那裏,當我發現的CreateFile()沒有很好地與文件名參數工作的CreateFile無法打開現有的命名管道。我的代碼是:VB6:的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無法識別並解析給定的文件名字符串。
這是怎麼發生的?我在Windows 7上使用VB6(使用一些技巧來安裝它)。這可能會導致問題嗎?
爲什麼是兩個\\?這很可能是你的問題源於此。您不能複製/粘貼示例,您需要知道發生了什麼。例如,\ \不會在VB6中轉義,儘管它在許多花括號語言中。 – Bob77 2011-05-26 02:21:04
\ \確實是問題之一。我不知道VB6沒有逃脫\,這就是爲什麼我在思考「\\。\ pipe \ testpipe」的正確性。現在主要的問題被證明是unicode/ansi。我試過CreateFileA,它工作。感謝您的信息。 – Charlie 2011-05-26 02:53:26
@Charlie :如果答案幫助了你,不要忘了接受它的答案,也許給予好評! (您的個人資料說,你還沒有問,儘管9個問題upvoted一個答案) – 2011-05-26 03:05:37