奇怪的CreateFile行为

时间:2014-06-18 12:11:17

标签: c winapi

奇怪的CreateFile行为。我厌倦了打开文件

HANDLE hFile = CreateFile(L"E:\\temp\\1.txt",  
    GENERIC_READ,          
    FILE_SHARE_WRITE,     
    NULL,                   
    OPEN_ALWAYS,             
    FILE_ATTRIBUTE_NORMAL, 
    NULL); 

if (hFile == INVALID_HANDLE_VALUE)
{
    printf("Could not CreateFile\n");
    return;
}

文件被打开没有错误(不知道是目标文件)..由于某种原因,在我的应用程序运行空文件“E”(wiout extention)在CreateFile调用期间创建的目录。这有什么不对?

1 个答案:

答案 0 :(得分:9)

删除文件名字符串的L前缀。您正在调用CreateFileCreateFileA)的窄版本并传入一个宽字符串。

或者,您可以将VS设置为使用Unicode构建应用程序。

在任何一种情况下,您都应该使用_T()宏来设置适当的字符串类型。即。

HANDLE hFile = CreateFile(_T("E:\\temp\\1.txt"),