C语言_WIN32_SDK_CreateFile()

来源:百度知道 编辑:UC知道 时间:2024/06/24 08:20:08
LPTSTR lpNewNameBuf=new TCHAR[szMAX];
HANDLE hFile,hNewFile;
SECURITY_ATTRIBUTES sa;

hNewFile=CreateFile(lpNewNameBuf,GENERIC_WRITE|GENERIC_READ,FILE_SHARE_WRITE,&sa,CREATE_NEW,FILE_ATTRIBUTE_NORMAL,0);
if(!hNewFile)
{
MessageBox(0,"新建文件失败 文件可能已存在","错误",MB_ICONWARNING);
return 0;
}

语法没有错误,但是没有在目录下看见他创建的文件,怎么回事,if(!hNewFile)这句应该是对的吧

一般的话CreateFile(lpNewNameBuf, 3, 0, 0, CREATE_NEW, 0, 0)

如果失败返回的是INVALID_HANDLE_VALUE 值是(HANDLE)-1

3就是读/写权限,短时间打开的文件没必要设share,
安全不要设,你很可能就是因为设了安全才不能正常建立文件。

错误的。
If the function fails, the return value is INVALID_HANDLE_VALUE. To get extended error information, call GetLastError.

如果CreateFile错误返回的是INVALID_HANDLE_VALUE不是NULL。

所以检查错误应该是:
if( INVALID_HANDLE_VALUE == hNewFile )
{
.///////////
}