问题遇到的现象和发生背景
我写了一个简单的日志写入程序,需要开机自启动,在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run ,添加自启动以后每次电脑重启程序能够自启动,但是程序无法读取或者创建文件,GetLastError都显示5 i/0错误,换了好几个读取文件函数都失败。怀疑是权限问题看了下双击启动的权限和开机自启动的权限都显示是administrator,不知道问题出在哪
用代码块功能插入代码,请勿粘贴截图
WNDCLASSEX wndClass = { sizeof(WNDCLASSEX) };
wndClass.lpfnWndProc = ClipWndProc;
wndClass.lpszClassName = L"WinRegiste";
if (!RegisterClassEx(&wndClass))
{
return 1;
}
HWND hWnd = CreateWindowEx(0, wndClass.lpszClassName, L"", 0, 0, 0, 0, 0, HWND_MESSAGE, NULL, GetModuleHandle(NULL), NULL);
if (!hWnd)
{
return 2;
}
else
{
srand(time(0));
int number1 = rand() % 100 + 1;
int number2 = rand() % 100 + 3;
sprintf_s(filename, "Log%d-%d", number1,number2);
if ((fp = _fsopen(filename, "wt", _SH_DENYWR)) != NULL)//换成fopen_s和CreateFileA都会是i/o错误
{
//
}
else
{
//每次重启都会在这里失败
char test[100];
int error = GetLastError();
sprintf_s(test, "%d", error);
MessageBoxA(NULL, test, "error", 0);
return 0;
}
}
运行结果及报错内容
GetLastError = 5