2011-10-06 11 views

Respuesta

30

Sí, si conoce la firma de la función

Sólo tiene que escribir la firma de la función antes de llamar a ella, como:

void f(int); //it is as if you've included a header file 

//then call it 
f(100); 

Todo lo que necesita hacer es: vincular el slib.a al programa.

Además, recuerde que, si la biblioteca estática está escrito en C y ha sido compilado con el compilador de C, entonces usted tiene que utilizar extern "C" al escribir la firma de función (si se programa en C++), como:

extern "C" void f(int); //it is as if you've included a header file 

//then call it 
f(100); 

Alternativamente, si usted tiene muchas funciones, a continuación, puede agruparlos juntos como:

extern "C" 
{ 
    void f(int); 
    void g(int, int); 
    void h(int, const char*); 
} 

Es posible que prefiera escribir todas las firmas de función en un espacio de nombres con el fin de evitar posibles colisiones de nombres-:

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"); 

Ahora se puede escribir todo esto en un archivo de cabecera para que usted podría incluir el archivo de cabecera en .cpp archivos (como de costumbre), y llamar a la función (s) (como de costumbre).

Espero que ayude.

+13

En otras palabras: escriba usted mismo el archivo de encabezado de la biblioteca. – sth

5

La manera más fácil: escriba la firma en un archivo de encabezado, inclúyalo y vincule con la biblioteca.

Cuestiones relacionadas