2011-10-21 41 views

Trả lời

31

Trên Windows, bạn không liên kết trực tiếp với tệp .dll trực tiếp – bạn phải sử dụng tệp .lib đi kèm. Để thực hiện điều đó, hãy truy cập Project -> Properties -> Configuration Properties -> Linker -> Additional Dependencies và thêm đường dẫn vào .lib của bạn làm dòng tiếp theo.

Bạn cũng phải đảm bảo rằng các tập tin .dll hoặc là trong thư mục chứa của biến %PATH% môi trường hoặc bản sao của nó là trong Output Directory (theo mặc định, đây là Debug\Release dưới thư mục của dự án của bạn).

Nếu bạn không có quyền truy cập vào tệp .lib, một cách khác là tải .dll theo cách thủ công trong thời gian chạy bằng các hàm WINAPI chẳng hạn như LoadLibraryGetProcAddress.

+0

Tôi cũng đã xem các địa điểm mà họ cũng đề cập đến tệp .h. Chúng ta có cần chúng cho quá trình này không? Tôi nghĩ rằng họ không cần thiết, vì tập tin .lib chứa tất cả thông tin cho dll. – darkgaze

+0

@darkgaze Tôi nghĩ rằng chúng vẫn cần thiết vì các tệp .h thường chứa tất cả các nguyên mẫu, khai báo, hằng số, macro ... –

19

Bạn không thêm hoặc liên kết trực tiếp với DLL, bạn liên kết với LIB được tạo bởi DLL.

LIB cung cấp biểu tượng và các dữ liệu cần thiết khác để bao gồm một thư viện trong mã của bạn (liên kết tĩnh) hoặc tham chiếu đến DLL (liên kết động).

Để liên kết với LIB, bạn cần phải thêm nó vào danh sách Thuộc tính -> Trình liên kết -> Đầu vào -> Phụ thuộc bổ sung. Tất cả các tệp LIB ở đây sẽ được sử dụng trong liên kết. Bạn cũng có thể sử dụng một pragma như vậy:

#pragma comment(lib, "dll.lib") 

Với liên kết tĩnh, mã được bao gồm trong tệp thực thi của bạn và không có phụ thuộc thời gian chạy. Liên kết động yêu cầu một DLL có tên và ký hiệu phù hợp có sẵn trong phạm vi the search path (chỉ có không phải là chỉ đường dẫn hoặc thư mục hệ thống).

+2

Giới thiệu về liên kết tĩnh: Làm thế nào tôi có thể làm cho Visual Studio sao chép dll từ một thư mục nhất định đến đầu ra trên xây dựng (hoặc trên liên kết)? – Marcel

+2

@Marcel Mỗi dự án cung cấp bản dựng trước, sau xây dựng và một loạt các bước khác (kiểm tra trong cài đặt dự án). Bạn có thể sao chép tập tin ở đó hoặc thậm chí chạy toàn bộ tập lệnh (tôi có một tập lệnh được thiết lập để tạo tiêu đề từ các ID sửa đổi và số bản dựng tăng trong khi tạo trước, sau đó sao chép tệp vào cài đặt thử nghiệm trong bài đăng). – ssube

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