Trong thế giới Microsoft, __declspec(dllexport)
làm cho một hàm hoặc lớp có thể gọi từ bên ngoài DLL.
Khi bạn tạo DLL, theo mặc định, bất kỳ hàm nào được xác định trong DLL chỉ có thể gọi từ cùng một DLL đó. Bạn không thể gọi hàm đó từ một tệp thực thi hoặc một DLL khác.
Nếu bạn muốn hàm của mình được gọi từ bên ngoài DLL, bạn cần xuất hàm bằng cách thêm __declspec(dllexport)
.
Một cách để suy nghĩ về điều này là __declspec(dllexport)
đánh dấu một chức năng như là một phần của giao diện công khai của DLL.
Trong khi bạn không hỏi về __declspec(dllimport)
thì điều ngược lại. Khi gọi một hàm trong một DLL khác, DLL của bạn cần biết rằng nó là một phần của giao diện public DLL khác nhau để nó có thể xử lý đúng cuộc gọi (gọi hàm trong một DLL khác yêu cầu mã phức tạp hơn để gọi một hàm trong chính bạn).
Nguồn
2010-02-20 08:17:43
@deepak: Chào mừng bạn đến với 'StackOverflow'! Tôi đã định dạng mã của bạn (chọn nó và nhấn Ctrl + K). –