如何在Visual Studio 2010中创建c++ Windows服务并与之通信
How to create and communicate with a C++ Windows Service in Visual Studio 2010?
我有一个(一种)用c++实现的数据库。现在我想创建一个Windows服务来查询它,因为p调用它不是一个选项,因为每个查询都必须加载数据库,这需要几分钟。
但我面临几个问题:
-
如何在VS2010中创建c++ Windows服务?模板已被删除(为什么??),我可以使用2008年的模板和转换吗?如果有:我在哪里可以找到这样的模板?
-
假设我设法创建一个c++ Windows服务:我的选择是什么与此服务通信(从C sharp)?优点/缺点是什么?
我很高兴得到任何提示!
本我不知道为什么,但是模板真的不见了。
对于应用程序和服务之间的通信,WCF将是一个选项。WCF的一个优点是,您可以轻松地切换传输层(HTTP、TCP、共享内存)看看这个MSDN页面。它准确地描述了您要实现的目标:在Windows服务中托管WCF服务。它甚至在最后包含了一个简单的Windows Service实现。可惜没有c++,只有c#
- 你可能想看看POCO项目,特别是这个类。如果你下载了代码,这里有一些例子。
- 您可能还想实现一个web服务,以便通过套接字从任何地方的任何客户端轻松访问。
几年前我做的是一个COM进程外服务器,这是一个Windows服务。它工作得很好,你可以很容易地从c#(和许多其他语言…)访问它。如果您没有COM经验,这可能会变得困难(取决于您的接口有多复杂)。
您应该实现以下函数:
VOID WINAPI ServiceMain(DWORD dwArgc, LPTSTR *lpszArgv);
VOID WINAPI ServiceHandler(DWORD fdwControl);
VOID ReportSvcStatus( DWORD dwCurrentState, DWORD dwWin32ExitCode, DWORD dwWaitHint );
MSDN上的更多信息。示例:link.
也许你可以使用!"ATL项目",然后选择"服务(EXE)"。
相关文章:
- Active Directory:从网络服务帐户下运行的Windows服务调用ADsOpenObject时失败
- Windows 后台服务(系统配置文件)无法使用 C++ 访问 win 10 上的用户 appData 文件夹?
- 在 Windows 服务中使用命名管道时出现问题
- Windows 服务在启动时不进入_tmain
- 名为DLL的C++windows服务程序工作不正常
- ImpersonateLoggedOnUser在windows服务中不工作
- 如何读取windows服务启动的控制台应用程序的输出
- 将 Visual C++ 6 控制台应用程序作为 Windows 服务运行
- 无法从C++ Windows 服务执行批处理文件
- 使用 Windows 防火墙 API 限制服务,找不到服务短名称
- 从C++ Windows 服务中获取当前登录的用户名
- LG电视通过串行使用Windows服务在PC开机后运行约30秒 - 如何更快地启动服务
- 从Windows服务打印
- 如何使用Visual Studio检测和获取Windows服务的代码覆盖率?
- 如何从 Windows 上的服务在未登录用户的桌面上启动应用程序
- QCoreApplication事件循环和Windows服务控制处理程序功能
- Windows 服务启动的超时值是多少
- Windows 生物识别服务在调用 WinBioCaptureSample 时循环运行 SensorAdapterSta
- 使用 NamedPipe 访问 Windows 服务之间的安全性
- 从Windows上的系统工作的服务中获取用户文档文件夹.C++