c++ - 作为 Windows 服务运行应用程序报告 COM 错误 80040154

标签 c++ windows com service

我正在尝试将普通应用程序转换为服务。该应用程序使用已安装的 COM 组件。当它作为独立应用程序运行时,它会找到并连接到 COM 组件,但是将应用程序转换为服务后,我会收到上述错误。

我知道这可能与以下事实有关:在服务管理器的“环境”中,它无法找到适当的 dll 或注册表项 - 如果有任何关于如何“修复”“服务管理器的“环境”以获取适当的注册表项/dll(我相信该框已在安装 COM 组件后重新启动)——这也可能是因为用户的 PATH 包含适当的目录,并且不确定服务管理器的 PATH 可能是什么或如何设置它...(我是 unix 开发人员,所有这些花哨的 Windows 东西对我来说都是新的...)

谢谢。

最佳答案

显然您的 COM 服务器没有正确注册。一次服务的区别在于它通常在不同的帐户下运行。使用 Regedit.exe 并确保注册存在于 HKLM\Software\Classes\CLSID 而不是 HKCU 中。重新注册,这次请确保您在关闭 UAC 的管理员帐户中运行 Regsvr32.exe。

关于c++ - 作为 Windows 服务运行应用程序报告 COM 错误 80040154,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2199896/

相关文章:

c++ - 使用 SFTP 和 Pageant 身份验证更新服务器文件夹

windows - Windows 10 中的 IIS 管理器

c# - 对 IE 工具栏中实例的静态引用

c# - 如何在 C# 中实现 ISpecifyPropertyPages

java - 为什么父类(super class) B 调用子类 A 的方法?

c++ - USACO 牛栏板 : Dinic's Algorithm/Changes to Pointer Not Registering

c++ - 获取 QWidget 的 Windows 消息而不对其进行子类化并重新实现 QWidget::winEvent

c++ - 无法让 CreateDDSTextureFromFile 工作

c++ - 根据当前操作系统更新 makefile 中的 CFLAGS 或 LDFLAGS

C# System.AccessViolationException 和 System.Runtime.InteropServices.SEHException