簡單動態庫以及呼叫動態庫例子
動態庫的寫法,以前沒有寫過動態庫,憑第六感覺應該很簡單。but,我卻在網上找資料時,沒有一個例子是我想要的,簡單又能說明問題。以至於耗費了大量的時間。以下例子是用C語言編寫,編譯環境為vs2015。
//------------------------------------------------------------------------------------------------------------------//
動態庫:
編寫一個庫名字為dllTest
新建方法:
檔案-》新建專案-》win32專案-》應用程式型別 選擇dll ,附加專案 選擇空專案-》完成
新增一個頭檔名為test.h,新增一個原始檔test.c
test.h 檔案內容
#ifndef _TEST_H #define _TEST_H _declspec(dllexport) int add(int a, int b); //_declspec(dllexport) 用來匯出函式, 若沒有,則不能匯出對應的.lib檔案 #endif // !_TEST_H
test.cpp檔案內容
#include "test.h"//包含標頭檔案
int add(int a, int b)//實現add
{
return a + b;
}
右擊生成,注意不是點選執行。
生成成功之後會在dllTest\Debug下生成dllTest.dll dllTest.lib
//------------------------------------------------------------------------------------------------------------------//
呼叫剛剛寫的動態庫
編寫一個程式名為callTest
新建方法:
檔案-》新建專案-》win32控制檯應用程式-》應用程式型別 控制檯應用程式 ,附加專案 選擇空專案-》完成
新增一個main.c檔案
1)首先將庫生成的 dllTest.lib 拷貝到與當前Debug 同一目錄下
2)其次,將dllTest.dll 拷貝到Debug下與.exe同一目錄下
3)配置:
右擊專案-》屬性-》連結器-》常規(附加庫目錄 填寫.lib所在的目錄,因此.lib也可以不用拷貝到1)目錄下,只要引用到就可以)
連結器-》輸入(附加依賴項 填寫.lib的名字 即dllTest.lib)
4)程式碼(main.c)
#include "test.h" //將標頭檔案加到該專案的標頭檔案中(即專案標頭檔案下有test.h),這裡是包含
#include <stdio.h>
int main()
{
printf("%d",add(7, 8));
system("pause");
return 0;
}
5)執行