2009-01-17 106 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在正確的位置?