我已经用C语言创建了一个Windows服务(使用WinAPI),我希望Visual Studio在我从"服务"面板启动服务时自动附加到服务的进程。如何实现这一点。附言将MessageBox放在服务的初始化功能中,而不是手动附加不是我正在寻找的解决方案。
我找到了解决方案。只需在注册表中添加以下项:
[HKEY_LOCAL_MACHINE\软件\Microsoft\Windows NT\当前版本\映像文件执行选项\THE_NAME_OF_YOUR_SERVICE_EXECUTABLE.exe]
并添加以下值和数据:
"Debugger"="vsjitdebugger.exe"
请注意,完成测试后必须删除此值,否则每当启动服务时,Visual Studio 都会提示附加一条消息。
这在Windows XP x32下工作。我没有测试过其他任何东西。
__asm int3 放置;放在代码的开头或要附加调试器的位置。