У меня есть статическая библиотека .lib. Я связал его в настройках компоновщика «Дополнительные каталоги библиотек» и «Дополнительные зависимости», а также с помощью pragma comment (lib, "mylib").
, И все это прекрасно компилируется.
То, что я спрашиваю, и я могу только найти связывающие решения, когда я смотрю, — как на самом деле использовать функции в нем. Если бы в моей статической библиотеке была ссылка на функцию «MyFunc», как я мог бы ее вызвать? Visual Studio в настоящее время не распознает пространства имен или функции, определенные в библиотеке.
Спасибо!
Вам нужно получить заголовочный файл для этой библиотеки, который обычно поставляется вместе с библиотекой. После этого вам нужно включить его в ваш файл, где вы хотите использовать функции из него, и вызывать функции, используя объявленные прототипы.
Ваш компилятор должен знать о прототипах функций — потому что он не может читать / анализировать файл lib — это работа компоновщика.
Если я понимаю, что вы спрашиваете, вам нужно объявить прототип для вашей функции, которая живет в lib:
Скажите, что ваша библиотека имеет:
int Foo(int bar) { ... }
В вашем «потребителе», где вы pragma
ваша библиотека, вам нужно что-то, что гласит:
extern int Foo(int bar);
или даже просто:
int Foo(int bar);
Обычно вы делаете это через файлы заголовков (.h
файлы), а для библиотек их обычно называют «включаемыми файлами»