Да, если вы знаете сигнатуру функции
Просто напишите сигнатуру функции перед вызовом, как:
void f(int); //it is as if you've included a header file
//then call it
f(100);
Все, что вам нужно сделать, это: связать slib.a
с программой.
Кроме того, помните, что если статическая библиотека написана на C и была скомпилирована с помощью компилятора C, то вы должны использовать extern "C"
при написании сигнатуры функции (если вы программируете на C ++), например:
extern "C" void f(int); //it is as if you've included a header file
//then call it
f(100);
В качестве альтернативы, если у вас много функций, вы можете сгруппировать их как:
extern "C"
{
void f(int);
void g(int, int);
void h(int, const char*);
}
Вы можете предпочесть запись всех сигнатур функций в пространство имен, чтобы избежать любых возможных конфликтов имен:
namespace capi
{
extern "C"
{
void f(int);
void g(int, int);
void h(int, const char*);
}
}
//use them as:
capi::f(100);
capi::g(100,200);
capi::h(100,200, "string");
Теперь вы можете записать все это в файл заголовка, чтобы вы могли включить файл заголовка в файлы .cpp
(как обычно) и вызывать функцию (и) (как обычно).
Надеюсь, это поможет.