c ++垃圾收集崩溃了应用程序

时间:2015-04-10 04:45:15

标签: c++ garbage-collection service-control-manager

我实际上甚至不知道这里发生了什么,但我希望有人可以帮助我。 不久前,我使用Windows API SC创建了一个控制Windows服务的类。很长一段时间它工作正常,没有严重的错误。但今天我在我的项目中使用了这个类,当垃圾工作时(在一个if或一个函数......)我的应用程序崩溃了。当我试图停止服务时,只会崩溃。

int main() {
    wchar_t serviceName[] = L"foo";
    ServiceController *service = new ServiceController(serviceName);
    if(!service->isRunning()){
        service->start();
    } else {
        service->stop();
    }
    system("PAUSE");
    return 0;
}

那个例子,当服务" foo"没有运行,方法start启动服务,应用程序关闭,否则如果服务正在运行,方法stop停止服务,system("PAUSE");正常工作,但应用程序在返回后崩溃。

我已经尝试了一切,但没有任何帮助。

可以找到班级here

谢谢!

编辑:在事件查看器上我可以发现此错误:

Faulting application name: stop.exe, version: 0.0.0.0, time stamp: 0x02430cb0
Faulting module name: ntdll.dll, version: 6.1.7600.16385, time stamp: 0x4a5bdadb
Exception code: 0xc0000005
Fault offset: 0x00055668
Faulting process id: 0xb90
Faulting application start time: 0x01d07389e28c97f4
Faulting application path: C:\Users\CacicQT86\Documents\build-stop-Desktop_Qt_5_3_MinGW_32bit-Debug\debug\stop.exe
Faulting module path: C:\Windows\SYSTEM32\ntdll.dll
Report Id: 20ceff7a-df7d-11e4-905d-08002754d7a4

1 个答案:

答案 0 :(得分:0)

this提交时解决。 我刚刚在LPSERVICE_STATUS上更改了SERVICE_STATUS_PROCESS stop(),而不需要初始化table,td { border: 1px solid black; } textarea { resize: none; width: 100%; height: 500%; }。可能是一个删除错误。