c++ - Windows 服务启动失败 "Path ' .' not found"

标签 c++ windows service

免责声明:错误消息是从瑞典语翻译而来的(很难找到准确对应的英文错误消息,Microsoft 请注意...) 错误消息也可能是“找不到路径”或“找不到路径”。由于瑞典语消息未将路径包含在“”中,因此有点不清楚。

这类似于这个问题,但不完全是:New Windows Service installed, fails to start: "System error 2 ... system cannot find the file specified"

服务是我自己写的。它是一个用非托管 C++ 编写的 exe,并使用以下外部代码:

  • libntlm - 作为动态库加载(libntlm-0.dll 与可执行文件放在同一位置)
  • OpenSSL - 作为静态库加载
  • pugixml - 直接编译成代码

我遇到的问题是它不会在 Windows 启动时启动,但如果我手动启动它,它就会启动! 我对可能出什么问题感到难过。我唯一能想到的就是如果找不到dll,但我不知道为什么找不到。环境变量可能有所不同?

我尝试过的:

  • 检查注册表,路径正确
  • 路径是本地磁盘
  • 改变了一些不同的路径(没有改变)
  • 确保路径中没有空格
  • 在程序开始时记录(没有写入日志,所以它不是内部路径未找到错误)
  • Dll 在同一路径中
  • 设置以我自己的网络帐户开始(不变)
  • 尝试将 exe 重命名为与服务名称相同(未更改)
  • 尝试使用 regsrv32 注册 libntlm-0.dll,但没有成功
  • 将 libntlm-0.dll 放入 System32(不变)

最佳答案

对于后代来说,51k 建议的延迟启动似乎有效。我不知道为什么这会有什么不同,但只要它有效,我就很高兴。

关于c++ - Windows 服务启动失败 "Path ' .' not found",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22296381/

相关文章:

c++ - clang-format 堆栈所有 if 语句参数(如果它们太长)

windows - 如何在 vb.net 中格式化日期

c++ - 如何在特定时间后重新启动窗口服务

java - 如何安排任务以使其在android中的任何条件下执行

java - 如何从 Activity 访问服务的变量

c++ - DirectX - CreateDeviceAndSwapChain 返回 E_INVALIDARG

java - 合并接口(interface),不合并

c++ - 何时在 C++ 对中使用点和箭头运算符?

c++ - 查找窗口并更改其名称

windows - .gitattributes 在 mac 和 windows 上不能正常工作