1

标题很笼统,但我的疑问很具体。我怀疑在哪里编写服务逻辑代码(在服务控制处理程序中或在 ServiceMain 中),就像服务将执行的任何功能一样。它在 ServiceMain 中吗?我在 MSDN 上查看了这些与服务相关的主题。但是,并没有帮助我 http://msdn.microsoft.com/en-us/library/ms687414%28VS.85%29.aspx http://msdn.microsoft.com/en-us/library/ms685984% 28v=vs.85%29.aspx

基本上,我想使用服务在 Windows 上启动一个套接字侦听。这个监听套接字逻辑代码将在服务文件中,因为我将使用 winexe 实用程序将此服务从 linux 机器发送到 windows 机器。目前,winexe 在 windows 上发送 winexesvc 服务文件。因此,最终我将替换现有的 winexesvc 服务,以便它在 Windows 上发送时执行对特定端口功能的侦听。(服务框架将保持不变,但其任务执行逻辑会改变,对吧?)。请告诉我是否遗漏了什么。提前致谢。

4

1 回答 1

1

服务控制处理程序应该只处理发送到服务的控制消息(您链接的示例中显示的是SERVICE_CONTROL_STOPSERVICE_CONTROL_INTERROGATE)。这些控制消息从环境发送到服务。

当所有必需的初始化完成后,您的服务的逻辑应该在ServiceMain函数中实现。在您帖子中 URL 的示例中,服务逻辑代码被放入SvcInit函数中(对于实现服务逻辑的函数,这可能不是最合适的名称)。

于 2012-12-25T11:35:59.257 回答