2011-10-06 30 views

Trả lời

30

Có, nếu bạn biết được chữ ký chức năng

Chỉ cần viết chữ ký chức năng trước khi gọi nó, như:

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

//then call it 
f(100); 

Tất cả bạn cần làm là: liên kết các slib.a vào chương trình.

Ngoài ra, hãy nhớ rằng, nếu thư viện tĩnh được viết bằng C và đã được biên soạn với trình biên dịch C, sau đó bạn đã sử dụng extern "C" khi viết chữ ký chức năng (nếu bạn lập trình bằng C++), như:

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

//then call it 
f(100); 

Ngoài ra, nếu bạn đã nhiều chức năng, sau đó bạn có thể nhóm chúng lại với nhau như:

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

bạn có thể thích viết tất cả các chữ ký chức năng trong một không gian tên để tránh bất kỳ khả năng tên va chạm:

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

Bây giờ bạn có thể viết tất cả các tệp này vào tệp tiêu đề để có thể bao gồm tệp tiêu đề trong các tệp .cpp của bạn (như thường lệ) và gọi (các) chức năng (như thường lệ).

Hy vọng điều đó sẽ hữu ích.

+13

Nói cách khác: Tự mình viết tệp tiêu đề cho thư viện. – sth

5

Cách dễ nhất: Viết chữ ký trong tệp tiêu đề, bao gồm chữ ký và liên kết với thư viện.

Các vấn đề liên quan