1. 程式人生 > >簡單動態庫以及呼叫動態庫例子

簡單動態庫以及呼叫動態庫例子

動態庫的寫法,以前沒有寫過動態庫,憑第六感覺應該很簡單。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)執行