建立和使用動態連線庫

2021-06-02 06:10:54 字數 2230 閱讀 7363

摘自

一、建立動態連線庫

1.  建立乙個dll專案

2.  新增乙個名為「mymathfuncs」的簡單類,以執行常見的算術運算,如加、減、乘和除。

**應與以下內容類似:

示例**

// mathfuncsdll.h

namespace mathfuncs

;}

請注意此**方法宣告中的 __declspec(dllexport) 修飾符。

這些修飾符使 dll 能夠匯出該方法以供其他應用程式使用。

有關更多資訊,請參見 dllexport, dllimport

cpp檔案

// mathfuncsdll.cpp

// compile with: /ehsc /ld

#include "mathfuncsdll.h"

#include using namespace std;

namespace mathfuncs

double mymathfuncs::subtract(double a, double b)

double mymathfuncs::multiply(double a, double b)

double mymathfuncs::divide(double a, double b)

return a / b;

}}

在vs中,直接生成即可。

如果在命令列中,使用如下命令

cl.exe /ld filename.cpp

二、使用動態鏈結庫

測試**先

// myexecrefsdll.cpp

// compile with: /ehsc /link mathfuncsdll.lib

#include #include "mathfuncsdll.h"

using namespace std;

int main()

如果是在vs下面,

建立新的控制台應用程式後,將為您建立乙個空程式。

原始檔的名稱與您在前面為專案選擇的名稱相同。

在本示例中,名為「myexecrefsdll.cpp」。

若要使用在動態鏈結庫中建立的算術例程,則必須引用該庫。

若要執行此操作,請在解決方案資源管理器中選擇 myexecrefsdll 專案,然後從「專案」選單中選擇「引用...」。

在「屬性頁」對話方塊中,展開「通用屬性」節點,選擇「框架和引用」,然後選擇「新增新引用...」按鈕。

有關「引用...」對話方塊的更多資訊,請參見「屬性頁」對話方塊 ->「通用屬性」->「框架和引用」。

顯示「新增引用」對話方塊。

此對話方塊列出了所有可以引用的庫。

「專案」選項卡列出了當前解決方案中的所有專案,以及它們包含的所有庫。

在「專案」選項卡中,選擇 mathfuncsdll。

然後單擊「確定」。

若要引用動態鏈結庫的標頭檔案,必須修改包含目錄路徑。

為此,請在「屬性頁」對話方塊中展開「配置屬性」節點,然後展開「c/c++」節點,並選擇「常規」。

在「附加包含目錄」旁邊,鍵入 mathfuncsdll.h 標頭檔案所在位置的路徑。

可執行檔案僅在執行時載入動態鏈結庫。

必須告訴系統在**查詢「mathfuncsdll.dll」。

您可以通過使用path環境變數做到這一點。

為此,請在「屬性頁」對話方塊中展開「配置屬性」節點,並選擇「除錯」。

在「環境」旁邊鍵入以下內容:path=<

mathfuncsdll.dll 檔案的路徑》,其中 <

mathfuncsdll.dll 檔案的路徑》 應替換為 mathfuncsdll.dll 的實際位置。

單擊「確定」儲存所有更改。

如果是在命令列下面,

先編譯測試檔案,然後再和dll檔案鏈結。所以分兩步。命令如下

cl.exe /c myexecrefsdll.cpp     //得到myexecrefsdll.obj檔案

link myexecrefsdll.obj mathfuncsdll.lib //得到exe檔案

注意鏈結時使用的是mathfuncsdll.lib 而不是mathfuncsdll.dll

gcc建立和使用靜態庫 動態庫

gcc建立和使用靜態庫 動態庫 下面以工程libtest為例說明gcc 建立和使用 靜態庫 動態庫的過程,libtest目錄結構和內容如圖1所示,其中三個檔案hello.h,hello.c和main.c的內容如下。libtest include hello.h ifdef hello h defin...

gcc建立和使用靜態庫 動態庫

下面以工程libtest為例說明gcc建立和使用靜態庫 動態庫的過程,libtest目錄結構和內容如圖1所示,其中三個檔案hello.h,hello.c和main.c的內容如下。圖1libtest include hello.h ifdef hello h define hello h void h...

建立和使用動態鏈結庫

在本演練中,您將建立乙個動態鏈結庫 dll 其中包含可供其他應用程式使用的有用例程。使用 dll 是一種重用 的絕佳方式。您不必在自己建立的每個程式中重新實現這些例程,而只需對這些例程編寫一次,然後從需要該功能的應用程式引用它們即可。本演練使用本機 c 有關使用本機 c 建立靜態庫的演練,請參見 演...