DLL學習系列一:c++靜態鏈接庫
靜態鏈接庫就是把一些通常是有某種共同特點和用途函數封裝(這里的封裝并不是c++中類的封裝,可以理解為集中存放)在一個.lib文件中,這些函數和數據是以二進制代碼的形式保存的,在客戶編譯可執行文件的時候,鏈接器將它們鏈接到exe文件中去,所以在發布產品的時候不需要發布靜態鏈接庫。
下面使用VC6.0演示一個最簡單的使用靜態鏈接庫的例子:
首先,新建一個Win32 Static Library Project。新建兩個文件:lib.h 和lib.cpp。代碼如下










{
return x+y;
}
編譯后debug文件夾下生成了lib.h和lib.lib文件。再新建一個Win32 Console Application Project。只有一個文件test.cpp。
//test.cpp
#include<stdio.h>
#include "..\lib.h"

int main ()
{
printf("2+3 = %d \n", add(2,3));
return 0;
}
其中#include"..\lib.h"是文件的相對路徑。如果編譯找不到文件,檢查路徑設置,在tools-options-directories-library files菜單或選項,填入庫文件路徑。將Project-Setting-C/C++-Precompile Headers設置為Not Using Precompile Headers。



{
printf("2+3 = %d \n", add(2,3));
return 0;
}
運行程序,我們可以看到加法函數被正確的調用了。