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