1

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,如果它有所作为。

4

0 回答 0