0

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

是否有一个特殊的地方可以为服务或特殊的方式放置 dll?

.

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

.

编辑2:

找出是什么原因造成的。它缺少 dbghelp.dll(使用依赖walker 来解决)。感谢您的输入。

4

2 回答 2

1

0xc0000034 代表 STATUS_OBJECT_NAME_NOT_FOUND,表示文件丢失。您是否将 dll 放置在正确的路径中?

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

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

于 2009-01-17T09:43:08.590 回答
1

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

于 2009-01-17T09:52:11.803 回答