Thư viện liên kết tĩnh
Thư viện liên kết tĩnh có phần mở rộng là .lib. File này chứa mã nhị phân của mã nguồn sau khi được build.
Tạo thư viện liên kết tĩnh
Mở Visual Studio tạo một Empty Project bằng cách vào File > New > Project, sau đó chọn Empty Project, đặt tên và nhấn OK để tạo Project.

Tạo 1 thư viện toán học gồm 2 file, StdioMath.h chứa prototype gồm các hàm toán học cơ bản Add, Sub, Mul, Div và StdioMath.cpp chứa mã nguồn định nghĩa.
File StidoMath.h
int Add(int, int); int Sub(int, int); int Mul(int, int); int Div(int, int);
Và file StdioMath.cpp
#include "StdioMath.h" int Add(int a, int b) { return a + b; } int Sub(int a, int b) { return a - b; } int Mul(int a, int b) { return a * b; } int Div(int a, int b) { return a / b; }
Mở cửa sổ Properties bằng cách chuột phải vào tên project và chọn Properties. Mục Configuration Properties/General chọn Configuration Type, sau đó chọn kiểu ứng dụng muốn build. Ở đây chọn là Static library (.lib).

Build Project để thấy kết quả.

Vào thư mục Debug sẽ thấy file StaticLib.lib được tạo ra sau khi build project.
Thư viện liên kết động
Thư viện liên kết động gồm có 2 file:
- File .lib chứa các thông tin cần thiết để hệ điều hành nạp thư viện dll và xác định các hàm export trong dll.
- File .dll chứa chứa mã nhị phân của mã nguồn.
Tạo thư viện liên kết động
Tương tự như tạo thư viện liên kết tĩnh, tạo một project khác có tên là DynamicLib. Project này cũng có hai file là StdioMath.h và StdioMath.cpp được viết như sau:
File StdioMath.h
int Add(int, int); int Sub(int, int); int Mul(int, int); int Div(int, int);
File StdioMath.cpp
#include "StdioMath.h" int Add(int a, int b) { return a + b; } int Sub(int a, int b) { return a - b; } int Mul(int a, int b) { return a * b; } int Div(int a, int b) { return a / b; }
Configuration Type chọn Dynamic Library (.dll). Sau đó build project để thấy kết quả.

Mở thư mục Debug sẽ thấy hai file DynamicLib.lib và DynamicLib.dll
Sử dụng thư viện liên kết
Sử dụng thư viện liên kết tĩnh
Tạo một project khác với tên là TestStaticLib. Copy 2 File StdioMath.h và thư viện StaticLib.lib được build ở project StaticLib vào project TestStaticLib.
Chỉ thị cho trình biên dịch là cần link tới file StaticLib.lib bằng cách mở hộp thoại Properties. Mục Configuration Properties/Input chọn Additional Dependences và gõ vào như sau:

Hoặc có thể sử dụng chỉ thị ở đầu file chương trình.
#pragma comment(lib, "StaticLib.lib")
Sử dụng thư viện bằng cách include StidoMath.h và dùng như những hàm thông thường khác.
#include "StdioMath.h" int main() { int a = Add(5, 7); int b = Sub(7, 8); int c = Mul(7, 8); int d = Div(7, 5); return 0; }
Sử dụng thư viện liên kết động
Tạo một project khác với tên là TestDynamicLib. Copy 2 File StdioMath.h và thư viện StaticLib.lib được build ở project DynamicLib vào project TestDynamicLib.
Chỉ thị cho trình biên dịch là cần link tới file DynamicLib.lib bằng cách mở hộp thoại Properties. Mục Configuration Properties/Input chọn Additional Dependences và gõ vào như sau:

Hoặc có thể sử dụng chỉ thị ở đầu file chương trình.
#pragma comment(lib, "StaticLib.lib")
Sử dụng thư viện tương tự đối với thư viện liên kết tĩnh.
#include "StdioMath.h" int main() { int a = Add(5, 7); int b = Sub(7, 8); int c = Mul(7, 8); int d = Div(7, 5); return 0; }
Build và chạy chương trình. Nếu trong quá trình chạy xảy ra lỗi thiếu dll, copy file DynamicLib.dll build từ project DynamicLib sang thư mục debug của solution.
