Tôi đang sử dụng chức năng LoadLibrary
để tải một DLL trong Windows. Câu hỏi của tôi là: Nếu tôi gọi phương thức này nhiều hơn một lần cho cùng một DLL, tôi có xử lý các trường hợp DLL khác nhau không, hoặc tất cả chúng sẽ chỉ đến cùng một cá thể không?Tải một DLL nhiều hơn một lần?
Ngoài ra, hành vi này có liên quan như thế nào với các tệp Linux SO, có giống nhau hay hoàn toàn khác và tôi có thể đưa ra những giả định nào về vấn đề này? Cảm ơn.
Bạn có muốn một phiên bản DLL riêng biệt (và trạng thái toàn cầu của nó) không? –
@DavidHeffernan Có thể, nhưng chỉ khi nó có thể được thực hiện trong Linux là tốt. Tôi đang cố gắng tìm hiểu cách mọi thứ 'thường' hoạt động như thế nào. Nếu những gì bạn mô tả là có thể, tôi muốn được biết làm thế nào. –
Nó hoạt động tương tự trong các hệ điều hành. Có một thủ thuật bẩn để có được các trường hợp riêng biệt của DLL. Mỗi khi bạn cần một phiên bản mới, hãy sao chép tệp đó vào một vị trí tạm thời và đặt cho nó một tên duy nhất. Bằng cách đó bạn buộc hệ thống tải một mô-đun mới. Đôi khi tôi đã sử dụng kỹ thuật này để làm việc xung quanh các thư viện không phải là luồng an toàn do thiết kế kém và sử dụng trạng thái toàn cầu. –