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