статические библиотеки — Использование .lib в visual studio 2012 (C ++)

У меня есть статическая библиотека .lib. Я связал его в настройках компоновщика «Дополнительные каталоги библиотек» и «Дополнительные зависимости», а также с помощью pragma comment (lib, "mylib")., И все это прекрасно компилируется.

То, что я спрашиваю, и я могу только найти связывающие решения, когда я смотрю, — как на самом деле использовать функции в нем. Если бы в моей статической библиотеке была ссылка на функцию «MyFunc», как я мог бы ее вызвать? Visual Studio в настоящее время не распознает пространства имен или функции, определенные в библиотеке.

Спасибо!

2

Решение

Вам нужно получить заголовочный файл для этой библиотеки, который обычно поставляется вместе с библиотекой. После этого вам нужно включить его в ваш файл, где вы хотите использовать функции из него, и вызывать функции, используя объявленные прототипы.

Ваш компилятор должен знать о прототипах функций — потому что он не может читать / анализировать файл lib — это работа компоновщика.

5

Другие решения

Если я понимаю, что вы спрашиваете, вам нужно объявить прототип для вашей функции, которая живет в lib:

Скажите, что ваша библиотека имеет:

int Foo(int bar) { ... }

В вашем «потребителе», где вы pragma ваша библиотека, вам нужно что-то, что гласит:

extern int Foo(int bar);

или даже просто:

int Foo(int bar);

Обычно вы делаете это через файлы заголовков (.h файлы), а для библиотек их обычно называют «включаемыми файлами»

2

По вопросам рекламы [email protected]