Я пытаюсь написать плагин ActiveX и попадаю в тупик при попытке загрузить DLL из подпапок. Я занимаюсь разработкой в Visual Studio 2013 для Windows 10.
Структура библиотек следующая:
myocx.ocx --> this is the compiled result
mylibs/
mainlib.lib
maindll.dll
rest-of-dlls.dll
Я не загружаю библиотеки DLL непосредственно в моем коде, вместо этого они используются библиотекой "mainlib.lib". Я попытался установить в «Дополнительные зависимости» VS Linker путь к файлу mainlib.lib, и он не может зарегистрировать мой плагин. Если я указываю "maindll.dll" в качестве библиотеки отложенной загрузки, то она компилируется, но плагин не работает (в какой-то момент происходит сбой в delayhlp. cpp).
Я прочитал следующие посты :
И следующие документы от Microsoft:
Я пытался добавить путь к библиотекам в переменную среды PATH моей системы, но по какой-то причине это не помогло работать на некоторых ПК.
Я также попробовал способ манифеста (как описано в первом связанном вопросе), но похоже, что VS полностью игнорирует его, так как я могу написать все, что угодно, и он потерпит неудачу, несмотря ни на что.
Если я поместил библиотеки DLL в ту же папку, что и плагин, он будет работать, но мне действительно нужно поместить их в подпапку из-за проблем совместимости, так что эта опция отбрасывается.
Я не против использовать Dynami c загрузка, но я не знаю, возможно ли это, поскольку библиотеки DLL загружаются не в моем коде, а в файле .lib. Я тоже не против изменить переменную PATH, но, как я уже сказал, в некоторых Windows установках происходит сбой.
Кто-нибудь может пролить свет на это, в дополнение к тому, что написано в связанных сообщениях?