尝试在VS 2019中使用regsvr32注册的DLL

时间:2019-04-24 04:51:55

标签: c++ dll regsvr32 visual-studio-2019

所以这是问题所在

我有一个用C ++编写的旧软件系统,最初是在Win Xp和VS 2005 SP1上构建的。此代码库中的大多数解决方案都依赖于使用regsvr32.exe注册的第三方DLL。没有此步骤,VS 2005会抛出链接器错误。注册后,所有内容都像魅力一样。

我已经能够使用Win 10和VS 2005成功地重建项目,现在我正尝试使用较新版本的VS(即VS 2019)进行相同的操作。对于一个测试解决方案,我能够解决编译问题错误,但是似乎VS 2019 Linker找不到应该已经在regsvr32中注册的DLL,因为我在注册DLL时遇到了与VS 2005相同的链接器错误。

我非常确定这是由于VS 2019“看不到”已在regsvr32中注册的DLL所致。因此,问题就来了:有没有人知道如何使VS 2019发现这些DLL?

DLL和编译器目标均为32位。我一直在使用SysWOW64 \ regsvr注册32位DLL。带有DLL的文件夹在$ PATH中。此外,在VS 2019的Project -> Project Properties -> VC++ Directories -> Library Directories设置中设置了带有DLL的文件夹

编辑: 两种情况下的链接器错误(在VS 2005和VS 2019中使用regsvr32之前)的形式为:

...
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

我很高兴得到任何指示。

0 个答案:

没有答案