2012-09-26 2 views
0

У меня есть программа на C++ с depedency на внешнем Dll [позволяет сказать dependent.dll], теперь если я держать ..Держите Dll в пользовательской папке

  • dependent.dll в исполняемом папке, она отлично работает, но если я сохраню
  • depend.dll в somne ​​custom Folder, это не так.

Я попытался

LPCTSTR deplibFullPath = "C:\Program Files\My_Program\Dlls\dependent.dll"; 
HMODULE hMod = LoadLibraryEx(deplibFullPath , NULL, LOAD_WITH_ALTERED_SEARCH_PATH); 

возвращает не нулевое, но всякий раз, когда я получить доступ к любой функции в dependent.dll, он не работает отлично (аварии)

Любая идея, где я делаю неправильно или для чего мне нужно сделать.

Благодаря

-Pankaj

ответ

3

Ваш путь неправильно. Это должно быть

LPCTSTR deplibFullPath = "C:\\Program Files\\My_Program\\Dlls\\dependent.dll"; 

, так как \ используется для исключения специальных команд в строке.

2

Возможно, для вашей dll требуются другие dll (зависимости) этой же папки. Попробуйте позвонить AddDllDirectory перед загрузкой этого.

И я предполагаю, что сингл «\» s на вашем пути, это просто ошибка копирования и вставки ...

+0

Примечание: Это Windows 8 функции –

+0

Спасибо Джонни, но я в настоящее время работает на Windows 7 и AddDllDirectory доступен минимум на Windows 8 :( и да, холостая просто опечатка «\ S».. – Pankaj

+0

Хорошо. Это может помочь: http://stackoverflow.com/questions/1919125/programmatically-adding-a-directory-to-windows-path-environment-variable –

0

я получил ответ, проблема была не в моей функции LoadLibraryEx, но я не с помощью GetProcAddress правильно. :(

Смежные вопросы