Дело в том, что под этим понятием можно понимать ряд разных вещей. Они похожи между собой идеей.
1) Подключение заголовочного файла.
#include
#include "myfile.h"
В заголовочных файлах чаще всего хранятся прототипы различных функций и некоторые константы. Это нужно, чтобы компилятор знал описание функций, которые вы используете, если они описаны не вами.
2) Подключение lib-файла.
Обычно делается в настройках проекта или коммандой #pragma comment(lib, "mylib.lib")
Таким образом мы можем использовать код, хранящийся, например в dll, без ручной загрузки.
3) Загрузка dll.
Делается через вызов функции LoadLibrary и последующими GetProcAddress - это ручная загрузка функций из библиотеки.
Все это предназначено для того, чтобы вы могли использовать сторонний код (будь то стандартные средства языка или код написанный просто другими программистами).