关于网友提出的“ OpenFile独占模式打开文件问题”问题疑问,本网通过在网上对“ OpenFile独占模式打开文件问题”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: OpenFile独占模式打开文件问题
描述:本帖最后由 PC_9527 于 2011-08-13 11:19:15 编辑
OpenFile用OF_SHARE_DENY_READ参数打开文件(没有任何错误),打开的句柄保存到一个全局变量中,在不关闭它的情况下(CloseHandle),正常情况下,应该无法再打开这个文件,很奇怪的是XP系统下有效,Win7却不可以。请问高手们是怎么一回事?
解决方案1: win7的话看看是不是权限问题
解决方案2: OF_SHARE_DENY_READ 是共享读, 别的进程可以打开读取这个文件,不能写入这个文件。
解决方案3: 应该是系统的问题,不是第三方程序的问题
你在Win7下是管理员,在XP下也是管理员吗?
或许不同系统的管理员权限也会有所不同
解决方案4: 我试的没有问题啊,
TCHAR szFileName[] = _T("C:\\temp\\myini.ini");
HFILE h_File = HFILE_ERROR;
OFSTRUCT ofStruct={ sizeof(OFSTRUCT) };
h_File = OpenFile(szFileName,
&ofStruct, OF_READWRITE|OF_SHARE_EXCLUSIVE);
CString szMsg;
if(h_File == HFILE_ERROR)
{
szMsg.Format(_T("OpenFile 失败,错误代码:%ld"),
GetLastError());
}
else
{
szMsg.Format(_T("可以打开文件%s\r\n试试看,测试期间请不要按确定键"),
szFileName);
}
AfxMessageBox(szMsg);
if(h_File != HFILE_ERROR)
{
CloseHandle((void*)h_File);
}
解决方案5: 用CreateFile
解决方案6: 你要通过复制伪句柄的方式独占它
解决方案7: 独占 用 OF_SHARE_EXCLUSIVE 试试
以上介绍了“ OpenFile独占模式打开文件问题”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/3308839.html