我发现了很多关于这个主题的问题,我将发布链接。不幸的是,他们都没有回答我的问题或他们似乎但后来导致msdn上没有在Visual Studio中编译的代码示例。
我想使用顶部答案here中提到的方法将使用C ++中的Visual Studio编译的exe转换为服务但是当我尝试添加必要的serviceMain函数时,该函数会导致所有其他服务函数需要添加我最终尝试编译不编译的this file。其中一个错误是抱怨#include "sample.h"
,因为它始终没有创建,尽管该页面指出编译器将生成VS不执行的头文件。
我只是希望能够通过.cpp文件制作自制的VS exe并将其转换为Windows服务,而不使用外部程序,除非内置于操作系统中,如sv.exe中提到的上面链接尽可能少的WINAPI。
来自该svc.cpp文件的代码会在注释掉#include "smaple.h"
时产生以下错误。
argument of type "const char *" is incompatible with parameter of type "HMODULE"
identifier "SVC_ERROR" is undefined
'DWORD GetModuleFileNameW(HMODULE,LPWSTR,DWORD)': cannot convert argument 1 from 'const char [1]' to 'HMODULE'
'SVC_ERROR': undeclared identifier
当谷歌搜索const char错误时,我得到的this即使将错误代码更改为活动状态也不起作用,这对我来说就是这样。我被引导到那个,因为当我搜索错误时,我发现另一个问题,其中答案说它依赖于更改构建设置,当我用Google搜索时,我得到的问题我直接链接到上面的答案没有'工作。
另一方面,我无法相信将可执行程序转变为服务会变得多么困难(以及涉及多少代码)结果是当唯一的一般差异是自动与手动时执行。
如果有办法在不使用WINAPI或外部程序的情况下做我想做的事情,请告诉我。
更新:我试图模仿AV程序在将各自添加到注册表时执行的程序,以便它们在启动时自动启动。