2009-01-17 127 views
0

我已经做了一个新的Windows服务,它使用barebone代码(只是一个服务的基本框架),但是,当我链接它与我的dll,lib文件使用dll中的功能在启动时崩溃0xc0000034错误。服务崩溃加载dll

是否有一个特殊的地方可以放置一个服务的DLL或一个特殊的方式来做到这一点?

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

编辑2:

发现了什么导致它。它缺少dbghelp.dll(使用dependency walker来解决)。感谢您的意见。

回答

1

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

编辑:我认为,因为它是服务取胜,路径的dll,它的负载应该还是应该在PATH环境变量(COM服务器的工作原理类似)

的dll文件直接复制到绝对路径System32目录并检查它是否修复了问题。

1

你的DLL依赖于任何其他DLL吗?那些其他DLL在正确的位置?