Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Winapi 如何使Visual Studio 2008在启动时自动附加到服务?_Winapi_Visual Studio 2008_Service_Visual Studio Debugging - Fatal编程技术网

Winapi 如何使Visual Studio 2008在启动时自动附加到服务?

Winapi 如何使Visual Studio 2008在启动时自动附加到服务?,winapi,visual-studio-2008,service,visual-studio-debugging,Winapi,Visual Studio 2008,Service,Visual Studio Debugging,我已经用C语言创建了一个windows服务(使用WinAPI),我希望在从“服务”面板启动服务时,Visual Studio能够自动附加到该服务的进程。 如何才能做到这一点。 另外,在服务的初始化功能处放置一个MessageBox,然后手动附加,这不是我正在寻找的解决方案。Place\uu asm int3;在代码开头或要附加调试器的位置。我找到了解决方案。只需在注册表中添加以下项: [HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\Windows NT\Cu

我已经用C语言创建了一个windows服务(使用WinAPI),我希望在从“服务”面板启动服务时,Visual Studio能够自动附加到该服务的进程。 如何才能做到这一点。
另外,在服务的初始化功能处放置一个MessageBox,然后手动附加,这不是我正在寻找的解决方案。

Place\uu asm int3;在代码开头或要附加调试器的位置。

我找到了解决方案。只需在注册表中添加以下项:

[HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\u您的\u服务\u EXECUTABLE.exe的\u名称\u]

并添加以下值和数据:

“调试器”=“vsjitdebugger.exe”

请注意,在完成测试时必须删除此值,否则每当服务启动时,VisualStudio将提示附加一条消息


这在WindowsXPX32下工作。我没有在任何其他方面进行测试。

Visual Studio只支持您试图阻止的路由。一种解决方法是编写自己的服务主机,将服务可执行文件和调用加载到其导出中。可以找到包含其他信息的.NET实现。支持的过程为。处理器不支持内联程序集。这可以工作,但需要修改和重新编译代码(完成后再修改int)。虽然它比我说我不想要的“MessageBox”解决方案更优雅,但它仍然不是我真正想要的。有价值的信息,谢谢分享。你有没有文档链接或博客条目?值是什么注册表数据类型?抱歉,我没有任何文档。一个朋友给我看了这个,但他不记得在哪里找到这个信息。类型为REG_SZ。