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 。c++

這就是dll的創建和調用的簡單過程,但願對您有幫助,若是發現那裏有問題,請您指正,感激涕零!!!web

相關文章
相關標籤/搜索