В моем проекте я использую приложение Delphi, которое динамически загружает DLL-оболочку (экспорт функций C-Style), которая, в свою очередь, статически связывается с кучей сторонних DLL.
Работает нормальнона моих тестовых компьютерах, но на моем клиентском компьютере он не смог инициализироваться сообщением об ошибке типа «Не удалось найти точку входа _somefunction @ 4AKKZ в TMYlibrary.dll».
После некоторого исследования с помощью монитора процессов sysinternal я понялчто Windows будет сначала искать DLL-библиотеки fror в windows / sytem32, поэтому, если в system32 присутствует DLL-библиотека с именем, похожим на my DLL, Windows выберет эту и попытается найти в ней точки входа моей функции - чтосбой.
Знаете ли вы о возможности изменить DLL-библиотеку Windows при поиске?
Дополнительная информация
- [ Обновление ] .exe-файл находится на верхнем уровне дерева папок приложения.
- Оболочка и сторонние библиотеки DLLоба находятся в подпапке / корзине моих приложений. Папка
- Платформа Dev - это Windows XP / 7, использующая VS2008 для dlll и Delphi 2010 для приложения