VS2013環境生成和調用DLL動態鏈接庫(第一種方法)


創建動態庫方法:
創建動態庫是生成 .dll .lib 兩個個文件

文件 -> 新建 -> 項目 -> win32控制台應用程序 項目名稱:DLLGenerator

應用程序類型:DLL  附加選項:空項目

 

 

建立源文件dllgenerator.cpp(不需要主函數,只寫你需要動態調用的函數)
// 整數加法和乘法  
int Add(int a, int b){  
return a + b;  
}  
int Mul(int c, int d){  
return c * d;  
}  

 

 
建立頭文dllgenerator.h(一定要把函數聲明寫好)
 
int Add(int, int);  
int Mul(int, int); 

  


建立源文件dllmain.cpp(一定要包含#include<windows.h>)
    - 下面的函數是VS2013自動生成,沒生成復制即可。其實是在創建工程項目時不選空項目時候vs自動生成的,但不選空項目會產生很多其他文件和依賴項,本文教你建立最純凈的工程,注意包含window.h
 
// dllmain.cpp : 定義 DLL 應用程序的入口點。  
#include <windows.h>  
BOOL APIENTRY DllMain(HMODULE hModule,  
DWORD  ul_reason_for_call,  
LPVOID lpReserved  
)  
{  
switch (ul_reason_for_call)  
{  
case DLL_PROCESS_ATTACH:  
case DLL_THREAD_ATTACH:  
case DLL_THREAD_DETACH:  
case DLL_PROCESS_DETACH:  
break;  
}  
return TRUE;  
}  

  

建立源文件Source.def
    - 建立方式如下圖,選擇 VisualC++ -> 模塊定義文件(.def)
    - 在此文件第一行引號中填你的項目名稱即可,EXPORTS下面列出要生成的函數名稱 格式:“名稱 @序號”)
LIBRARY "DLLGenerator"  
EXPORTS  
     Add @1  
     Mul @2  

 

 

點擊菜單欄 生成 -> 生成解決方案 或者 按Ctrl+F5
輸出欄顯示 創建庫 DLLGenerator.lib 和 生成 DLLGenerator.dll
 

 

 

lib文件里面有對dll文件的描述,所以生成的dll文件不要改名稱,否則lib文件和dll文件無法對應
在項目方案目錄里,Debug文件夾中可以找到DLLGenerator.lib 和 DLLGenerator.dll, 把這兩個文件和工程的頭文件(dllgenerator.h)移動到一個空文件夾(E:\dlltest\DLL)中,以后你的項目用到此dll就包含這個目錄,至此動態庫創建完畢。
 
 
項目調用動態庫方法如下:
調用動態庫是調用 .dll .lib .h 三個文件
文件 -> 新建 -> 項目 -> win32控制台應用程序 項目名稱:DLLTestor
應用程序類型:控制台應用程序  附加選項:空項目

 

 

 
打開項目 -> 項目屬性 -> 配置屬性 -> VC++目錄 -> 包含目錄 加入DLLGenerator.h所在目錄的絕對路徑 (E:\dlltest\DLL),以分號間隔
打開項目 -> 項目屬性 -> 配置屬性 -> VC++目錄 -> 庫目錄 加入DLLGenerator.lib所在目錄的絕對路徑 (E:\dlltest\DLL)

 

 

 
打開項目 -> 項目屬性 -> 配置屬性 -> 鏈接器 -> 輸入 -> 附加依賴項 中填上DLLGenerator.lib(以分號間隔), 點擊右下角 應用 確定
 

 

 

工程調用dll時首先在工程文件目錄中查找dll,找不到后在C:\Windows\System32 中找。所以我們自己項目簡單調用dll時就把生成的dll文件復制到工程目錄中,如果經常用可以把dll文件放到C:\Windows\System32中
 

 

 

新建源文件main.cpp
#include<iostream>  
#include"dllgenerator.h"  
using namespace std;  
int main(){  
int a = 2;  
int b = 3;  
cout << Add(a, b) << endl;  
cout << Mul(a, b) << endl;  
}  

  

點擊菜單欄,調試 -> 開始執行(不調試)  或者按F5
運行結果:

 

 

至此調用動態庫成功。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM