当程序执行到StartServiceCtrlDispatcher()时,我的程序报告错误。
错误:ConsoleApplication33.exe中的0x74BFFF70(sechost.dll)抛出异常:0xC0000005:访问冲突读取位置0xCCCCCCCC。
我尝试了很多方法,但是失败了。我在哪里写错了。请告诉我。先感谢您。代码如下:
#include "pch.h"
#include<Windows.h>
#include<iostream>
#include<atlstr.h>
#include<fstream>
#include<tchar.h>
bool brun = false;
SERVICE_STATUS servicestatus;
SERVICE_STATUS_HANDLE hstatus;
void WriteToLog(const std::string &str)
{
std::ofstream p("D:/log.txt", std::ios::app);
if (!p.is_open())
return;
p << str << std::endl;
p.close();
}
void WINAPI CtrlHandler(DWORD request)
{
switch (request)
{
case SERVICE_CONTROL_STOP:
brun = false;
servicestatus.dwCurrentState = SERVICE_STOPPED;
break;
case SERVICE_CONTROL_SHUTDOWN:
brun = false;
servicestatus.dwCurrentState = SERVICE_STOPPED;
}
SetServiceStatus(hstatus, &servicestatus);
}
void WINAPI ServiceMain(int argc, char **argv)
{
servicestatus.dwServiceType = SERVICE_WIN32;
servicestatus.dwCurrentState = SERVICE_START_PENDING;
servicestatus.dwControlsAccepted = …Run Code Online (Sandbox Code Playgroud)