Как определить макрос, который правильно устанавливает __declspec - PullRequest
0 голосов
/ 07 августа 2020

Используя Visual Studio 2017, я пытаюсь создать свой последний проект, который импортирует библиотеки, которые, в свою очередь, импортируют методы и функции из файлов .dll.

При сборке проекта я получаю список ошибок вот так:

error LNK2001: unresolved external symbol "__declspec(dllimport) void __cdecl UserTracking(void *)" (__imp_?UserTracking@@YAXPEAX@Z)
error LNK2001: unresolved external symbol "public: bool __cdecl EACServer::Destroy(void)const " (?Destroy@EACServer@@QEBA_NXZ)
error LNK2001: unresolved external symbol "public: bool __cdecl EACServer::Initialize(void)const " (?Initialize@EACServer@@QEBA_NXZ)
...

Все перечисленные функции взяты из импортированных библиотек.

Например, метод EACServer::Initialize определен как в EACServer.h:

bool Initialize() const;

В коде, который я компилирую, эта функция используется так (соответствующие файлы заголовков импортируются в файл .h из c):

this->eacServer = EACServer();
this->eacServer.Initialize();

Определение класса EACServer is basi c:

class EACServer : IRoot {
    ...
}

Мне сказали, что эти ошибки возникают из-за того, что мне не хватает макроса, который правильно устанавливает __declspec.

Как я могу найти / реализовать этот макрос?

1 Ответ

1 голос
/ 07 августа 2020

Оказывается, хотя я добавил пути к своим библиотекам в каталогах дополнительных библиотек компоновщика, я не позаботился добавить файлы .lib в дополнительные зависимости компоновщика.

...