标题很一般,但我的疑问是具体的。 我怀疑在哪里编写服务逻辑代码(在服务控制处理程序或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上发送时执行特定端口功能的监听。 (服务骨架将保持不变,但其执行逻辑的任务会改变,对吗?)。请告诉我是否遗漏了什么。 提前谢谢。
答案 0 :(得分:1)
服务控制处理程序应该只处理发送到服务的控制消息(您链接的示例中显示的是SERVICE_CONTROL_STOP
和SERVICE_CONTROL_INTERROGATE
)。这些控制消息从环境发送到服务。
当完成所有必需的初始化时,应在ServiceMain
函数中实现服务的逻辑。在帖子中URL的示例中,服务逻辑代码被放入SvcInit
函数(这可能不是实现服务逻辑的函数的最合适的名称)。