2017-01-13 20 views
-1

Я пишу службу Microsoft на C++. Эта служба должна динамически загружать во время выполнения библиотеку .dll, находящуюся в подпапке в той же папке, что и исполняемый файл. Однако, как мне сказал кто-то, фактический рабочий каталог службы не совпадает с исполняемым каталогом, поэтому библиотека не найдена и не загружена. Как доказательство этого факта, я могу загрузить библиотеку, если я запускаю исполняемый файл службы как приложение.Загрузить .dll-библиотеку в качестве службы Microsoft

Структура папок приложения выглядит следующим образом:

FOLDER\Service.exe 
FOLDER\SUBFOLDER\library.dll 

Как бы вы получить доступ к нему в качестве службы?

+1

Вы можете извлечь каталог из текущего пути к модулю. Вы можете использовать GetModuleFileName для получения пути к файлу текущего исполняемого файла – Asesh

+0

Спасибо, Asesh, это работает. Если вы напишете это как ответ, я с радостью приму это! – phagio

+0

Я отправил его в качестве ответа :) – Asesh

ответ

0

Вы можете извлечь каталог из текущего пути к модулю. Вы можете использовать GetModuleFileName для извлечения пути к файлу текущего исполняемого файла