C++ 无法在windows服务应用程序中包含某些boost标头

C++ 无法在windows服务应用程序中包含某些boost标头,c++,boost,windows-services,boost-filesystem,C++,Boost,Windows Services,Boost Filesystem,发展环境: 操作系统:Windows 8 IDE:VisualStudio2010 Boost版本:1.55.0 我有一个将字符串写入文件的简单应用程序。因为我必须以windows服务的形式运行应用程序,所以我使用windows服务api,如StartServiceCtrlDispatcher、RegisterServiceCtrlHandler等。 一切都以这种方式运作良好,生活也很美好。 但是,当我在代码中包含boost头时,我无法从netstart命令启动服务。 包括这个 #inclu

发展环境:

  • 操作系统:Windows 8
  • IDE:VisualStudio2010
  • Boost版本:1.55.0
我有一个将字符串写入文件的简单应用程序。因为我必须以windows服务的形式运行应用程序,所以我使用windows服务api,如StartServiceCtrlDispatcher、RegisterServiceCtrlHandler等。 一切都以这种方式运作良好,生活也很美好。 但是,当我在代码中包含boost头时,我无法从netstart命令启动服务。 包括这个

#include <boost/filesystem.hpp>
我正在使用sc create aab binpath=“path to executable”创建服务


我不知道boost到底是如何集成的,也不知道如何调试它或找到解决方案。

似乎与boost的使用没有什么关系

binpath=”“
似乎很奇怪。如果没有二进制文件,您如何期望服务启动

另外,如果这在您的实际测试中是正确的

  • 检查dll依赖项(dependencywalker.com)

很抱歉造成混淆。我在那个引用中找到了可执行文件的路径。编辑了我的问题。可执行文件的路径是什么?是否将其放入程序文件中(请检查应用程序虚拟化,因为您使用的是另一个帐户运行服务)。是否进入网络位置(检查执行权限)。另外,我的回答的其余部分仍然适用,不管路径(我没有假设它是空的,正如我在回答中提到的)在我的本地驱动器中,而不是在程序文件或网络位置中。如果我没有包含boost头文件(但我的代码中没有使用boost),exe实际上可以正常工作。这意味着您确实缺少正确的dll(例如boost_filesystem-vc120-gd-1_55.dll等)。请将此作为答案
C:\WINDOWS\system32>net start aab
The service is not responding to the control function.

More help is available by typing NET HELPMSG 2186.