從項目中生成dll文件的快速方法(a fast way to generate dll from the project)


最近學到了一個非常方便的從VisualStudio的project中生成dll的方法,記錄如下:

以一個簡單的工程作為例子,假設現在我們有一個叫dllDemo的工程,里面有如下兩個文件:

dllDemo.h

#include<stdlib.h>
#include<stdio.h>

int main ();
int Max(int x,int y);

dllDemo.cpp

#include"dllDemo.h"

int main ()
{

    int max_value=Max(100,7);
    printf("%d\n",max_value);
    return 0;
}

int Max(int x,int y)
{
    return x>y?x:y;
}

我用的是vs2005,其他的也大同小異,目錄結構如下:

如圖,這是一個非常簡單工程,里面也沒什么東西,只有一個main函數和一個做示范的max函數。

現在,我們的目的就是把這個max函數從這個項目里面提取出來,封裝成一個dll文件,讓其他的程序可以調用通過dll文件調用這個函數。

第一步 

首先,我們用記事本創建一個.def文件,文件名的話隨便起一個就行,比如叫:GenDll.def,然后按照以下格式填寫內容:

LIBRARY    "your_project_name"

EXPORTS

your_function_name

例如,我們的項目名稱叫DllDemo,需要封裝到dll文件中的函數叫max,就這么寫:

LIBRARY    "dllDemo"

EXPORTS

Max

然后把GenDll.def復制到DllDemo\DllDemo目錄下,並且在項目中把這個文件添加到源文件夾里面。其實直接右鍵添加新建項,然后新添加一個def文件應該也可以,不過我的vs2005每次這么做的時候都會報錯,所以,為了保險起見,還是按照上述的方法做。此時,我們的目錄結構如下:

第二步

這一步我們需要對項目的屬性進行一些修改,

1.右鍵項目-屬性-配置屬性-常規-配置類型-動態庫dll

2.右鍵項目-屬性-鏈接器-常規-輸出文件-把文件名稱后綴改為dll

3.右鍵項目-屬性-鏈接器-輸入-模塊定義文件-輸入def文件名稱

4.右鍵項目-屬性-鏈接器-高級-導入庫-輸入$(TargetDir)$(TargetName).lib

 

OK,做到這一步基本就完成了,配置屬性結束了。

第三步


重新生成一遍解決方案,然后在DllDemo\debug下就會發現多了一個DllDemo.dll文件,這個就是我們需要的dll文件。

第四步

上面三個步驟生成了我們想要的dll文件,但是我們還沒有測試這個dll是否可用。有的時候,很可能由於疏忽,導致dll文件里面的函數有問題。因此,我們還要寫一個test程序,來測試性能。

方法也很簡單,直接在當前的解決方案上右鍵-新建項目,然后隨便起個名,我的是DllTest,目錄結構如下:

DllTest.cpp內容如下:

#include<stdlib.h>
#include<stdio.h>
#include<Windows.h>

int Max(int x,int y);

int main ()
{
    int max_value=Max(300,127);
    printf("%d\n",max_value);
    system("pause");
    return 0;
}

然后把項目依賴性里面DllTest的依賴項改為DllDemo,然后把DllTest設置為啟動項,接下來啟動調試,

如果編譯沒有問題,且控制台輸出如下內容:

恭喜你,你的dll文件生成成功並且沒有問題。


免責聲明!

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



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