Ах, радости библиотек DLL и зависимостей в Visual Studio.Клянусь, кодерам C # это легко:)
Вы уверены, что файл LIB действительно создан?Если ваш проект DLL не экспортирует какие-либо символы, вы не получите файл lib, и, следовательно, вам не на что будет ссылаться.Поэтому вам необходимо убедиться, что:
Ваш проект DLL определяет что-то вроде MYPROJECTNAME_EXPORTS
.Visual Studio определяет этот символ для вас, когда вы устанавливаете соответствующий флажок при создании проекта.Если вы этого не сделали, это довольно просто.Убедитесь, что вышеупомянутый символ находится в директивах препроцессора для вашей DLL, и в общем заголовочном файле убедитесь, что определено следующее:
#if defined(MYPROJECTNAME_EXPORTS)
#define MYPROJECT_API __declspec(dllexport)
#else
#define MYPROJECT_API __declspec(dllimport)
#endif
Как только мы узнаем, что это MYPROJECT_API
правильно определено, мы должны убедиться, что любой класс или функция, которую мы хотим экспортировать, имеет это в своих объявлениях:
class MYPROJECT_API SomeClass
{
}; // eo class SomeClass
И этот класс должен быть реализован и фактически do что-то, что компилятор не оптимизировал.
Короче говоря, причина, по которой вы не можете найти файл .lib
, заключается в том, что ни один не был сгенерирован, поскольку из него не было экспортировано никаких символов.