1. 程式人生 > >C語言中呼叫靜態庫函式和動態庫函式的方式

C語言中呼叫靜態庫函式和動態庫函式的方式

C語言中呼叫動態庫函式的兩種方式

方式一.隱式呼叫

將動態庫的相關檔案拷貝到當前目錄下(lib、dll),然後新增以下程式碼,在程式中指定連線庫函式。

注意:第二個引數給出的是引入庫檔案(或稱“匯出庫檔案”),而不是dll。在程式執行過程中,lib將dll中需要用到的函式對映到對應的記憶體空間。

#pragma comment(lib, "./mydll.lib")

方式二.顯示呼叫

需要包含Windows.h的標頭檔案,具體程式碼如下:

需要設定一個控制代碼(此處為void *):在程式設計中,控制代碼是一種特殊的智慧指標 。當一個應用程式要引用其他系統(如資料庫、作業系統)所管理的記憶體塊或物件時,就要使用控制代碼。

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include"fun.h"
#include<Windows.h>
typedef int(*MYFUNC)(int, int);
#pragma comment(lib, "./mydll.dll")
int main(int argc, char *argv[])
{
	HANDLE hDll; //void *
	hDll = LoadLibrary("mydll.dll"); //匯入動態連結庫
	MYFUNC my_add = (MYFUNC)GetProcAddress(hDll, "my_add");//proc程式

	int a = my_add(1, 2);
	printf("%d\n", a);

	system("pause");
	return 0;
}

呼叫靜態庫函式

只要在第二個引數位置指定目錄即可。

#pragma comment(lib, "./mydll.lib")