Мое решение VC++ включает в себя два проекта: приложение (exe) и статическую библиотеку.Как связать статическую библиотеку в Visual C++ 2008?
Оба компилируются в порядке, но не имеют связи. Я получаю ошибку «неразрешенный внешний символ» для каждой функции из статической библиотеки, которую я использую. Они выглядят так:
MyApplication.obj: LNK2019 Ошибка: неразрешенный внешний символ "__declspec (DllImport) Int __cdecl MyStaticLibrary :: принять (INT, структура SOCKADDR *, Int *)"
АРР, ФАЙНД .lib просто отлично, так что это не проблема. Я думаю, что проблема «dllimport» - проблема, почему она будет там, когда я пытаюсь создать статическую библиотеку? И приложение, и библиотека используют «многопоточную (/ MT)» библиотеку времени исполнения, а не «многопоточную DLL (/ MD)».
EDIT:
Я думаю, что некоторые из ответов правые. Библиотека, которая называется UDT, имеет это в основном файле заголовка:
#ifdef UDT_EXPORTS
#define UDT_API __declspec(dllexport)
#else
#define UDT_API __declspec(dllimport)
#endif
Означает ли это, что не было предназначено для использования в качестве статической библиотеки?
, так что тайна - это то, что происходит от __declspec (dllimport) - предположительно, файл .h, но как он его получил? Некоторые макросы исчезли? Как дела? –