2011-10-06 12 views

cevap

30

Evet, siz

Sadece çağırmadan önce fonksiyon imza yazmak fonksiyon imza, biliyorsanız:

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

//then call it 
f(100); 

Yapmanız gereken: programına slib.a bağlayın.

(eğer C++ da program varsa) gibi işlev imza yazarken Ayrıca statik kitaplık C ile yazılmıştır ve C derleyicisi ile derlenmiştir varsa, o zaman extern "C" kullanmak ettik, unutmayın:

Eğer birçok işlevi yasiyorsaniz
extern "C" void f(int); //it is as if you've included a header file 

//then call it 
f(100); 

Alternatif olarak, sonra da olabilir grup onları birlikte olarak: olası ad-çarpışmaları önlemek amacıyla

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

bir ad alanında tüm işlev imzalarını yazma tercih edebilirsiniz:

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

Şimdi de (her zamanki gibi) .cpp dosyalarında dosyasının eklenmesinin diye bir başlık dosyasında tüm bu yazma ve fonksiyon (lar) (her zamanki gibi) çağırabilir.

Bu yardımcı olur umarım.

+13

Başka bir deyişle: Kitaplık için başlık dosyasını kendiniz yazın. – sth

5

En kolay yol: İmzayı bir başlık dosyasına yazın, ekleyin ve kitaplığa karşı bağlantı oluşturun.