vs2013 dll(動態鏈接庫) 文件的創建和引用


 

   

vs2013 dll 文件的創建和引用

 

本人小白,大牛勿噴,內容不深刻,僅僅是關於dll的創建個引用,例子也很簡單,只為了說明一些不太容易看清而被忽視導致錯誤的問題.

      前幾天做了個加密算法的封裝dll,找了好多教程,發現其實很簡單的問題被說的有點不那么容易看懂,這里我就用自己最簡單的語言說明這個問題。

建立

      首先,我們打開vs2013,依此點擊文件-->新建-->項目-->win32控制台應用程序,起名myDll,確定,下一步,應用程序類型選擇dll,默認點擊完成(空項目和導出符號我們不選擇),個人理解dll文件的書寫比較類似於C++中的頭文件,從左側的解決方案中可以看見源文件中包括dllmain.cpp myDll.cpp 和stdafx.cpp三項,這里的dllmain .cpp 類似用C中的main函數,但是我的們的代碼並不是在這個dllmain函數,他相當於一個入口和出口,當函數執行時首先進入這個dllmain函數中然后,執行完其他函數后再今天這個dllmain函數,我們需要自己定義的函數應該寫在myDll.cpp中,如果dll中含有其他的頭文件的話,需要在stdafx.h中進行聲明。我這里寫一個很簡單的加和函數Add(int x ,int y);
// myDll.cpp : 定義 DLL 應用程序的導出函數。  
//  
  
#include "stdafx.h"  
_declspec (dllexport) int Add(int x, int y)  
{  
    return (x+y);  
}  

 

寫完代碼后,我們要查看這個dll是不是正確,在調試的左邊有一個生成,點擊生成,選擇第一個生成解決方案,如果代碼正確后就回顯示生成成功,然后查看文件的地址中的debug你會發現生成了myDll.dll和myDll.lib,則說明我們dll是成功的。

調用

現在我們看看怎么調用寫好的dll
同樣我們需要寫一個簡單的測試函數,VS中文件--》新建--》項目--》win32控制台應用程序,起名為test_myDll確定,下一步,控制台應用程序,選擇空項目。完成,這里我們用一個c語言程序進行調用,點擊源文件新建一個cpp代碼如下
#include <stdio.h>  
#pragma comment(lib, "myDll.lib")//調用dll文件時候必須用到的  
int Add(int x, int y);          //對剛才寫好的Add函數進行聲明  
//主函數  
int main()  
{  
    printf("%d\n",Add(4,5));  
    return 0;  
}  

 

寫好代碼后選擇調試左邊的生成,生成解決方案,輸出框中會提示無法打開myDll.lib,這是因為我們沒有把寫好Dll文件拷貝到這個程序的debug中,就會出現路徑不明。這樣我們在吧myDll拷貝到測試函數的debug中,拷貝完成后,再次生成解決方案,這樣依然無法打開myDll.lib,這是因為我們拷貝了但是沒有聲明,右鍵左邊生成方案下面的test_myDll,點擊最下面的屬性,選擇vc++目錄,找出你的測試函數的debug目錄,拷貝到庫函數的最前面,E:\code\VS\dll\test_myDll\Debug;不過記着要帶分好,。完成后再次生成 解決方案,現在就會成功,然后選擇調試,點擊開始執行(不調試)就會出現我們Add(4,5)的結果 9 。

這就是dll的建立和調用的簡單過程,希望對您有幫助,如果發現那里有問題,請您指正,感激不盡!!!

 


免責聲明!

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



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