建立了一个支持MFC的win32 console,写了个windows服务程序,没有和用户交互的界面,在后台运行正常,在任务管理器里可以看到 ServiceTest   System 。
现在想和用户有个界面的交互,所以在创建服务时,将第五个参数改成SERVICE_WIN32_OWN_PROCESS|SERVICE_INTERACTIVE_PROCESS,
之后又添加了一个对话框资源类CInterDlg;
如果我在ServiceMain里调用
CInterDlg dlg;
dlg.DoModal();
的话,服务启动不了;没办法,我尝试在Install()//安装函数
之后调用
CInterDlg dlg;
dlg.DoModal();
服务可以启动,但是问题是在任务管理器里,可以看到对话框另外以一个单独的进程存在,而不是服务进程的一份子,如下所示:ServiceTest   Adiministrator
ServiceTest   System等于说这个服务用了两个进程。在关闭服务时由于不能有效释放对话矿资源,导致关闭服务失败大家看看这个为什么会这样?对话矿应该也算是服务进程的一部分吧?为什么会两个进程?
把一个没有交互的服务程序改成通过一个对话矿交互的服务程序需要注意什么问题?
谢谢了