小编Sua*_*SFT的帖子

报告错误:使用StartServiceCtrlDispatcher(entrytable)时访问冲突

当程序执行到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)

c sdk

1
推荐指数
1
解决办法
50
查看次数

标签 统计

c ×1

sdk ×1