仅当在D:\ test \ output \中打开Windows资源管理器时,以下代码才会在EndUpdateResource调用上抛出110错误,其中可执行文件被复制到:
std::ifstream in("C:\\Windows\\notepad.exe", std::ios::binary);
std::ofstream out("D:\\test\\output\\notepad.exe", std::ios::binary);
out << in.rdbuf();
in.close();
out.close();
Handle hUpdateRes = BeginUpdateResource(_T("D:\\test\\output\\notepad.exe"), FALSE);
EndUpdateResource(hUpdateRes, FALSE);
只要我没有在Windows资源管理器中打开该文件夹它就可以正常工作。如果我打开它会引发错误。此外,如果我在BeginUpdateResource调用之前执行具有读写访问权限的CreateFile,即使我打开了输出文件夹,它也能正常工作。我真的很困惑,希望得到任何帮助。谢谢!
我在机器上禁用了随需应变的病毒扫描程序,代码不再引发错误。
这都是关于您正在编写的文件的目录权限。至少这对我来说。我在桌面上写文件,它有Read only
属性并且随机收到此错误。我只需在桌面上创建一个文件夹并将文件写入其中即可解决问题。所以,解决方案:
1)不要将文件写入系统目录。
2)自己创建一个目录
3)编辑目录的属性。以只读方式起飞。要以编程方式执行此操作:
How to Remove the Readonly attribute of a File MFC
removing readonly from folder, its sub folders and all the files in it
或者结合所有这些。