服务崩溃加载DLL

时间:2009-01-17 09:18:15

标签: c++ windows service

我已经制作了一个新的Windows服务,使用准系统代码(只是服务的基本框架)工作正常,但是,当我将它链接到我的dll时,lib文件使用dll中的功能它在启动时崩溃出现0xc0000034错误。

是否有一个特殊的地方可以将dll用于服务或特殊方式来执行此操作?

编辑:我在与exe相同的文件夹中拥有所需的所有dll但我会尝试将它们移动到system32文件夹。我认为这可能是由我的内存泄漏检测器(vld)和服务引起的冲突,将不得不做更多的调试和反复试验。

编辑2:

找出导致它的原因。它缺少dbghelp.dll(使用依赖walker来解决它)。感谢您的投入。

2 个答案:

答案 0 :(得分:1)

0xc0000034代表STATUS_OBJECT_NAME_NOT_FOUND,表示缺少文件。 你是否正在把dll放在正确的路径上?

编辑:我认为,因为它是win服务,它加载的dll路径应该是绝对路径,或者应该是PATH环境变量(COM服务器就是这样)

只需将dll复制到System32目录并检查它是否解决了问题。

答案 1 :(得分:1)

您的DLL是否依赖于任何其他DLL?这些其他DLL是否在正确的位置?