Сервис Crash loading dll - PullRequest
       7

Сервис Crash loading dll

0 голосов
/ 17 января 2009

Я создал новую службу Windows, которая прекрасно работает с использованием barebone-кода (просто базовая структура для службы), однако, когда я связываю его с моим dll, файл lib использует функциональность в dll, которую он вылетает при запуске с ошибкой 0xc0000034.

Есть ли специальное место для размещения dll для службы или особый способ сделать это?

.

Редактировать: у меня есть все необходимые библиотеки в той же папке, что и exe, но я постараюсь переместить их в папку system32. Я думаю, что это может быть конфликт, вызванный моим детектором утечки памяти (vld) и службой, придется выполнить еще несколько отладок, проб и ошибок.

.

Редактировать 2:

Выяснил, что было причиной. В нем отсутствовал dbghelp.dll (для обхода использовался обходчик зависимостей). Спасибо за ввод.

Ответы [ 2 ]

1 голос
/ 17 января 2009

Ваши библиотеки DLL зависят от других библиотек? Эти другие библиотеки находятся в правильном месте?

1 голос
/ 17 января 2009

0xc0000034 обозначает STATUS_OBJECT_NAME_NOT_FOUND, что указывает на отсутствующий файл. Вы помещаете dll в правильный путь?

РЕДАКТИРОВАТЬ: я думаю, так как это служба win, путь к DLL, который он загружает, должен быть абсолютным путем или должен быть в переменной среды PATH (COM-серверы работают так)

Просто скопируйте dll в каталог System32 и проверьте, решает ли он проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...