Pliki lib są odczytywane przez konsolidator, a podczas wykonywania używany jest plik dll. Plik lib jest zasadniczo bezużyteczny podczas wykonywania, a konsolidator nie jest w stanie odczytać pliku dll (z wyjątkiem być może w sposób nieistotny tutaj).
Różnice między użyciem plików lib do łączenia statycznego i dynamicznego mogą być mylące, ale jeśli zrozumiesz trochę historii, stanie się to bardzo jasne.
Pierwotnie istniały tylko biblioteki statyczne. W przypadku biblioteki statycznej plik .lib zawiera pliki obj. Każdy plik obj jest wynikiem jednego i tylko jednego pliku wejściowego kodu źródłowego kompilatora. Plik lib to po prostu zbiór powiązanych plików obj, podobnie jak umieszczanie plików obj w katalogu. To właśnie jest plik lib, biblioteka plików obj. W przypadku łącza statycznego wszystkie pliki obj, których używa plik wykonywalny, są łączone w jeden plik. Porównaj to z łączem dynamicznym, w którym plik wykonywalny znajduje się w innym pliku niż inny używany przez niego kod.
Aby zaimplementować łączenie dynamiczne, firma Microsoft zmodyfikowała użycie plików lib tak, aby odwoływały się do pliku dll zamiast lokalizacji w pliku obj. Poza tym wszystkie informacje zawarte w bibliotece dla łącza statycznego są takie same, jak dla łącza dynamicznego. Wszystkie są takie same, jeśli chodzi o zawarte w nich informacje, z wyjątkiem tego, że plik lib dla łącza dynamicznego określa plik dll.