OpenFile独占模式打开文件问题 本帖最后由 PC_9527 于 2011-08-13 11:19:15 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 独占 用 OF_SHARE_EXCLUSIVE 试试 OF_SHARE_DENY_READ 是共享读, 别的进程可以打开读取这个文件,不能写入这个文件。 可以指定这个:OF_SHARE_DENY_NONE 试过了,仍然是没用,XP下可以。OF_SHARE_DENY_READ是其它进程可读???不对吧? 我是用管理员身份运行的程序。我也怀疑在Win7系统,文件读写权限是由系统来指派,而不是第三方的程序。关于这点还要高手来证实一下。 也不行,但是CreateFile在XP也是可以的,正在翻阅闲置已久的《Windows核心编程》 我试的没有问题啊, 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); } 估计还是Win7系统下权限问题,我用于测试的是一些Windows目录下的系统文件,比如记事本这类的。 openfile是什么。。果断用CreateFile 已经试过了,CreateFile的效果一样,XP下没有任何问题,到了Win7系统,如果是系统目录下的文件,就不行了,两个API函数都不返回错误 应该是系统的问题,不是第三方程序的问题你在Win7下是管理员,在XP下也是管理员吗?或许不同系统的管理员权限也会有所不同 独占应该用OF_SHARE_EXCLUSIVE,这个是拒绝读写的,如果欲打开的文件被人正在使用,会出错 是一个权限下(管理员)运行的程序,Win7系统目录下的文件采用独占模式打开就是不行。参数没有问题,XP系统下都是可以的。没有任何错误返回。函数正常执行。高手高手,期待高手。 都清楚了是权限问题,你把那个文件的dacl改成允许你的用户读写再试 VS2010的问题 异常 ? unhandle exception ... MFCO42D.DLL 函数定义问题 资源编辑器的使用问题~~~ CCmdUI::SetRadio()和SetCheck有什么区别呀?看不懂MSDN说的。 合并EXCEL单元格的问题!!急急急急急!! 求助 有这个函数吗? 關於線程函數的問題! 如何用VC设计程序结构? 急求各种寻路算法!! MFC 打印图片,在虚拟打印机上效果很好,但是在真实打印机上却打印不出来。。。。
也不行,但是CreateFile在XP也是可以的,正在翻阅闲置已久的《Windows核心编程》
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);
}
估计还是Win7系统下权限问题,我用于测试的是一些Windows目录下的系统文件,比如记事本这类的。
你在Win7下是管理员,在XP下也是管理员吗?
或许不同系统的管理员权限也会有所不同
高手高手,期待高手。