2009-01-17 4 views
0

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

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

.

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

.

Edit 2:

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

ответ

1

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

EDIT: Я думаю, как это выиграть сервис, путь к DLL, которые он загружает должен быть абсолютный путь или она должна быть в переменной окружения PATH (COM-серверов работает как это)

Просто скопируйте DLLs в в директории System32 и проверьте, исправляет ли она проблему.

1

Ответа на часто задаваемые вопросы: DLL зависят от других DLL-файлов. Являются ли эти другие библиотеки DLL в правильном месте?