Так вот в чем проблема:
У меня есть старая программная система, написанная на C ++ и изначально построенная на Win Xp с VS 2005 SP1. Большинство решений в этой кодовой базе зависят от сторонних библиотек DLL, которые зарегистрированы с использованием regsvr32.exe
. Без этого шага VS 2005 выбрасывает ошибки компоновщика. После регистрации все работает как брелок.
Мне удалось успешно перестроить проект с использованием Win 10 и VS 2005, и теперь я пытаюсь сделать то же самое с более новой версией VS, а именно VS 2019. Для одного тестового решения я смог разрешить компиляцию ошибки, но кажется, что VS 2019 Linker не может найти библиотеки DLL, которые должны были быть зарегистрированы с regsvr32, так как я получаю те же ошибки Linker, которые я получал с VS 2005 до регистрации DLL.
Я уверен, что это связано с тем, что VS 2019 "не видит" библиотеки DLL, которые были зарегистрированы в regsvr32. Таким образом, вопрос: кто-нибудь знает, как заставить VS 2019 обнаруживать эти библиотеки DLL?
DLL и цель для компилятора 32-битные. Я использую SysWOW64 \ regsvr для регистрации 32-битных DLL. Папка с DLL находится в $ PATH. Также папка с DLL установлена в настройках Project -> Project Properties -> VC++ Directories -> Library Directories
VS 2019
Edit:
Ошибки компоновщика в обоих случаях (до использования regsvr32 с VS 2005 и с VS 2019) имеют вид:
...
1>RecordSet.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall IDatabase::~IDatabase(void)" (__imp_??1IDatabase@@QAE@XZ) referenced in function "public: void * __thiscall IDatabase::`scalar deleting destructor'(unsigned int)" (??_GIDatabase@@QAEPAXI@Z)
...
Затем следует fatal error LNK1120: 17 unresolved externals
Я был бы рад получить любые указатели.