一.Win32動態鏈接庫
1.制作的步驟:
(1)新建WIN32 Dynamic-link Library工程,工程名為MyDll,選擇A simple DLL project類型。
(2)MyDll.h的內容如下:
以下是引用片段: extern "C" _declspec(dllexport) int sum(int a,int b);//本文所有的例子只有一個sum即加法函數。 |
(3)MyDll.cpp的內容如下:
以下是引用片段: #include "stdafx.h" #include "windows.h" #include "MyDll.h" BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) { return TRUE; } extern "C" _declspec(dllexport)int sum(int a, int b) { return a+b; } |
(4)編譯之后產生了MyDll.lib與MyDll.dll兩個文件。
2.使用方法:
(1).隱式調用法: 將MyDll.lib和MyDll.h拷貝到需要應用該DLL的工程的目錄下,將MyDll.dll拷貝到產生的應用程序的目錄下,并在需要應用該DLL中的函數的CPP文件中添加如下幾行:
以下是引用片段: #include "MyDll.h" #pragma comment(lib,"MyDll"); |
(2).顯示調用法:將MyDll.lib和MyDll.h拷貝到需要應用該DLL的工程的目錄下,將MyDll.dll拷貝到產生的應用程序的目錄下,并在需要應用該DLL中的函數的CPP文件中包含頭文件,如:
以下是引用片段: #include "MyDll.h" |
同時還需要在Project->Setting->Link->Object/library modules的框中增加MyDll.lib這個庫。
二.MFC動態鏈接庫
1.制作的步驟:
(1)新建MFC AppWizard(dll)工程,工程名為MFCDll,選擇Regular DLL using shared MFC DLL類型。
(2)在生成的MFCDll.cpp文件后面增加下面幾行:
以下是引用片段: int sum(int a, int b) { return a+b; } |
(3)在生成的MFCDll.def文件后面增加如下:
以下是引用片段: sum @1 ;表示第一個函數是sum |
(4)編譯后會產生兩個文件MFCDll.lib,MFCDll.dll
2.使用方法
(1)隱式調用法: 將MFCDll.lib拷貝到需要應用該DLL的工程的目錄下,將MyDll.dll拷貝到產生的應用程序的目錄下,并在需要應用該DLL中的函數的CPP文件中添加如下幾行:
//注意這里沒有在MFCDll.h中聲明函數,所以不能直接包含MFCDll.h來聲明函數。
以下是引用片段: #pragma comment(lib,"MFCDll"); int sum(int a, int b); |
//當然如果你的DLL中有很多函數,那可以另外寫個MFCDll.h,包含所有的函數聲明,然后直接將頭文件包含進去
(2)顯示調用法:與Win32的調用方法一樣,不需要#pragma comment(lib,"MFCDll");,但是需要在Project->Setting->Link->Object/library modules的框中增加MFCDll.lib這個庫。
作者:佚名 來源:中國自學編程網