Eğer başlık dosyası yoksa, yalnızca * .a dosyası yoksa, işlev imzası biliyorum, statik lib işlevini kullanmanın bir yolu var mı?Başlık dosyasım yoksa, statik kitaplıktan işlev nasıl kullanılır?
cevap
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:
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.
En kolay yol: İmzayı bir başlık dosyasına yazın, ekleyin ve kitaplığa karşı bağlantı oluşturun.
Başka bir deyişle: Kitaplık için başlık dosyasını kendiniz yazın. – sth