aaronjohnson9973 Ответов: 1

Добавление __declspec(dllexport) нарушает связь моей статической библиотеки


У меня есть решение VS 2010 с двумя проектами на C++. Один из них создает приложение (.exe). Другой создает статическую библиотеку (.lib). Приложение использует статическую библиотеку. Решение строится, и приложение выполняется, как и ожидалось. Класс объявляется следующим образом.

класс MyClass
{
общественный:
статическая пустота MyFunc(void);
};

если объявление класса изменяется следующим образом:

класс __declspec(dllexport) MyClass
{
общественный:
статическая пустота MyFunc(void);
};

Сборка приложения (exe) завершается со следующим сообщением об ошибке.

.obj : ошибка LNK2019: неразрешенный внешний символ "__declspec(dllimport) public: static

Почему?

Что я уже пробовал:

поискал в интернете и не нашел объяснения

1 Ответов

Рейтинг:
2

Richard MacCutchan

Вы создаете статический библиотека, а не dll, поэтому вы ее не используете __declspec(dllexport) Вам просто нужно убедиться, что сборка вашего проекта настроена для статической библиотеки и что ваше приложение включает в себя .lib-файл, который создает этот проект.


CPallini

5.