Попытка использовать regsvr32 зарегистрированные библиотеки DLL в VS 2019 - PullRequest
0 голосов
/ 24 апреля 2019

Так вот в чем проблема:

У меня есть старая программная система, написанная на 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

Я был бы рад получить любые указатели.

...