我正在尝试使用
注册atl服务ExeName.exe / service
如此处所述:http://msdn.microsoft.com/en-us/library/74y2334x(VS.80).aspx
在这样做之后,它没有出现在我的服务控制面板中(通过在vista的开始框中键入Services来实现)。
我试图挖掘atl代码以查看它处理/ service开关的位置,但找不到它,虽然我可以找到代码来处理/ RegServer和/ UnregServer
这曾经工作,我以前以某种方式设法注册这项服务。但是,现在我已移动其位置,无法再次注册。当我运行ExeName.exe / service时,如果我先执行/ RegServer,它会启动为本地服务器,但我希望它作为服务安装。
我错过了什么,你知道/ service交换机的处理在哪里吗?
答案 0 :(得分:1)
在黑暗中拍摄:你在Vista上运行吗?如果是这样,请确保您使用完全管理员权限运行。否则,您可能通过虚拟化注册此应用程序。
答案 1 :(得分:1)
与JaredPar一样,尝试使用具有完全管理员权限的Power Shell命令。
答案 2 :(得分:1)
使用开箱即用的CAtlServiceModule :: Install方法运行,必须在每个参数上使用正确的大写字母 - “/ Service”,“/ UnregServer”等。
答案 3 :(得分:0)
检查您是否在atlbase.h中定义的CAtlServiceModuleT类中的ParseCommandLine函数名称中不小心输入了某些字符
如果你这样做了,基类中也有这个函数的一个版本,这意味着eveything会很好地编译,你可能需要一整天才能发现这个愚蠢的错误!
- )