如何在Visual Studio 2010中创build和使用C ++ Windows服务进行通信?

我有一个(种)数据库在C ++中实现。 现在我想创build一个Windows服务来查询它,因为P-invoking它不是一个选项,因为数据库将不得不加载每个查询,这需要几分钟。

但是我面临几个问题:

  1. 我如何在VS2010中创build一个C ++ Windows服务? 该模板已被删除(为什么???),我可以使用2008模板并将其转换? 如果是的话:我在哪里可以find这样的模板?

  2. 假设我设法创build一个C ++ Windows服务:我有什么select与这个服务进行通信(来自c sharp)? 有什么优点/缺点?

我会很高兴的任何提示!

我不知道为什么,但模板真的走了。

为了在应用程序和服务之间进行通信,WCF将是一个选项。 WCF的一个优点是,您可以轻松地切换传输层(HTTP,TCP,共享内存)

看看这个MSDN页面 。 它描述了你正在试图达到的目标:在Windows服务中托管一个WCF服务。 它甚至包含了一个简单的Windows服务实现。 不幸的是没有C ++,但C#。

您应该执行以下功能:

VOID WINAPI ServiceMain(DWORD dwArgc, LPTSTR *lpszArgv); VOID WINAPI ServiceHandler(DWORD fdwControl); VOID ReportSvcStatus( DWORD dwCurrentState, DWORD dwWin32ExitCode, DWORD dwWaitHint ); 

更多信息在MSDN上 。 例如: 链接 。

  1. 你可能想看看POCO项目 ,特别是这个课程 。 如果你下载的代码有一些例子。
  2. 您可能还想实现一个Web服务 ,以便通过套接字从任何地方轻松访问任何客户端。

我几年前做的是一个COM服务器,它是一个Windows服务。 它工作得很好,你可以很容易地从C#(和许多其他语言…)访问它。 如果你没有COM的经验可能会变得很难(取决于你的界面是多么复杂)。

也许你可以使用! ATL项目,然后选择服务(EXE)。

最好的祝福