我在Windows 7的Visual Studio 2008中有一个C++项目,我试图启动一个新的服务。 我以管理员身份运行Visual Studio。 但我无法启动该服务(serviceMain函数甚至都未被调用)。
这是我的主函数:
wchar_t str[] = {'s','e','s','m'};
int _tmain(int argc, _TCHAR* argv[])
{
SERVICE_TABLE_ENTRY dispTable[] =
{
{(wchar_t*)str, ServiceWork::ServiceMain},
{NULL, NULL}
};
int i = StartServiceCtrlDispatcher(dispTable);
int j = GetLastError();
return 0;
}
输出结果为:
. . .
'SessionMonitor.exe':已加载 'C:\Windows\SysWOW64\cryptbase.dll'
'SessionMonitor.exe':已加载 'C:\Windows\SysWOW64\imm32.dll'
'SessionMonitor.exe':已加载 'C:\Windows\SysWOW64\msctf.dll'
在 SessionMonitor.exe 中 0x7638b9bc 处发生一次“First-chance exception: 0x00000005:拒绝访问”。线程“Win32 Thread”(0x129c)已以代码 0 (0x0) 退出。 程序 '[2492] SessionMonitor.exe: Native' 已以代码 0 (0x0) 退出。
调试时,j 的值为1063 - ERROR_FAILED_SERVICE_CONTROLLER_CONNECT
有人遇到过这个问题吗? 有解决方案吗?
谢谢, Liron