为什么CreateFile不能打开64位程序中以点结尾的文件?

时间:2013-10-17 01:21:12

标签: winapi filenames createfile

Windows CreateFile的行为有一个奇怪的区别,这取决于您是将程序编译为32位还是64位。前者将愉快地打开以点(句点)结尾的文件,而后者以ERROR_ACCESS_DENIED失败。

例如,以下程序将根据位数的不同而有所不同:

int _tmain(int argc, _TCHAR* argv[])
{
    HANDLE h = CreateFile(
        _T("\\bob."),
        GENERIC_WRITE,
        FILE_SHARE_READ | FILE_SHARE_WRITE,
        NULL,
        CREATE_ALWAYS,
        FILE_ATTRIBUTE_NORMAL,
        NULL);
    return h != INVALID_HANDLE_VALUE;
}

我做错了什么或者是Windows错误? Windows 7,如果它有所作为。

0 个答案:

没有答案