我正在尝试将普通应用程序转换为服务。该应用程序使用已安装的 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/