1. 程式人生 > >如何編譯生成dll檔案以及如何呼叫dll檔案

如何編譯生成dll檔案以及如何呼叫dll檔案

1.vs2015下生成DLL檔案

檔案->新建->專案

點選確定選擇dll選項和空專案選項


點選完成 

為專案新增c++原始檔mydll.cpp

extern "C"      // 此處extern "c" 為解決c/c++相容問題 
{
	_declspec(dllexport)int add(int a, int b)
	{
		return a + b; 
}
extern "C"
{
	_declspec(dllexport)int sub(int a, int b)
	{
		return a - b;
	}
}


編譯生成 成功後會在工程根目錄生成Win32Project1.dll檔案

2.對dll檔案的呼叫

顯示呼叫動態連結庫 新建C++工程
把生成的 Win32Project1.dll 檔案拷貝到 剛才新建的工程目錄下
在工程中新建原始檔寫入程式碼為
#include<iostream>
#include<windows.h>

void main()
{
	HINSTANCE mydll = LoadLibrary("Win32Project1.dll"); //載入dll檔案
	if (mydll == NULL)
	{
		return;
	}
	

	 int(*add)(int, int) =( int (*)(int ,int )) GetProcAddress(mydll, "add");//獲取函式指標
	 /*
	    等價於
	    typedef int(*myadd)(int, int);  //給 函式指標int  (*)(int, int ) 取別名  myadd
	    myadd a = (myadd) GetProcAddress(mydll,"add");  //獲取函式地址
	 */

	 if (add == NULL)
		  {
		 return;
	 }

	std::cout << add(1, 2);
	std::cin.get();

}

編譯並執行即可。