我有一个 MFC 应用程序,它有 2 个 exe。它们共享一个用于读写的公共资源文件。一旦文本文件超过其大小限制,它就会重新创建。之后,只有一个 exe 能够写入文件。即写权限在娱乐后丢失。
下面是用于创建新文件的一段代码。
CreateFile(FileName, GENERIC_ALL, FILE_ALL_ACCESS, NULL,
OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
你能提出任何解决方案。提前致谢。
这将错误的参数传递给CreateFile,包括dwDesiredAccess和dwShareMode。前者请求比需要更多的访问权限。但是,后者是致命的,因为它请求一个与访问模式冲突的共享模式(它使用了一个不打算在这里使用的符号常量)。
要打开文件以进行读/写访问,同时授予其他调用者以相同权限访问该文件,请改用以下代码:
CreateFile(FileName, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL,
OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
创建和打开文件的 MSDN 条目列出了兼容的访问和共享模式。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句