Cách dễ nhất và an toàn nhất để gọi một hàm từ thư viện/dll được chia sẻ là gì? Tôi chủ yếu quan tâm đến việc làm điều này trên Linux, nhưng nó sẽ là tốt hơn nếu có một cách độc lập nền tảng.Cách gọi hàm từ thư viện được chia sẻ?
Ai đó có thể cung cấp mã ví dụ để cho biết cách thực hiện công việc sau, trong đó người dùng đã biên dịch phiên bản foo
của riêng mình thành một thư viện được chia sẻ?
// function prototype, implementation loaded at runtime:
std::string foo(const std::string);
int main(int argc, char** argv) {
LoadLibrary(argv[1]); // loads library implementing foo
std::cout << "Result: " << foo("test");
return 0;
}
BTW, tôi biết làm thế nào để biên dịch các lib chia sẻ (foo.so
), tôi chỉ cần biết một cách dễ dàng để tải nó tại thời gian chạy.
Nếu bạn đề cập đến đó tiêu đề để đưa vào Unix/Linux ... –
Xong trong khối mã thứ hai. – vladr
Điều gì về mang tên hàm trong C++, điều đó sẽ không phức tạp? Ngoài ra, bạn đã viết sai chính tả ở đây '#include' –
sbk