vs2012在已有專案上生成和使用dll動態鏈結庫

2021-09-24 11:36:19 字數 834 閱讀 4179

假設有兩個c++專案a、b,並且都定義了很多的子函式,這些子函式之間呼叫關係複雜,如果b需要通過使用dll庫的方式呼叫a中的乙個子函式(或者多個),怎麼辦?

假設a中定義了很多的子函式,其中有乙個子函式add,其函式宣告所在標頭檔案和函式定義所在原始檔分別為:

add.h

int add(int &a,int &b);

add.cpp

#include "add.h"

int add(int &a, int &b)

那麼專案b通過使用dll庫的方式呼叫子函式add的解決步驟如下:

1. 將專案a的配置型別改為動態庫(.dll)

2. 在函式宣告前新增 extern "c" __declspec(dllexport) 修飾符,函式定義不變

add.h

extern "c" __declspec(dllexport) int add(int &a,int &b);

3. 「生成」->「重新生成解決方案」,然後輸出視窗將出現成功生成.lib和.dll的提示資訊

4. 在專案a的debug目錄下可看到.lib和.dll檔案,然後將它們拷貝到專案b的debug目錄下

5. 在專案b中新建函式宣告的標頭檔案,並在該標頭檔案中指定匯出庫.lib的路徑

add.h

#pragma comment(lib,"e:\\user2\\vs專案**\\test\\debug\\test.lib")

extern "c" __declspec(dllimport) int add(int &a,int &b);

大功告成,在專案b中即可呼叫函式add了!同時,別忘了還原專案a的配置哦,怎麼改過來的就怎麼改回去。

vs2012在已有專案上生成和使用dll動態鏈結庫

假設有兩個c 專案a b,並且都定義了很多的子函式,這些子函式之間呼叫關係複雜,如果b需要通過使用dll庫的方式呼叫a中的乙個子函式 或者多個 怎麼辦?假設a中定義了很多的子函式,其中有乙個子函式add,其函式宣告所在標頭檔案和函式定義所在原始檔分別為 add.h int add int a,int...

VS2012 無法新建或者編譯已有的專案

今天啟動vs2012時,發現提示外掛程式錯誤,然後開啟以前的 時,發現報錯如下 contractname microsoft.visualstudio.utilities.icontenttyperegistryservice requiredtypeidentity microsoft.visua...

VS2012編寫C語言專案

原文 vs2012編寫c語言專案 這兩天看了一下c語言方面的知識,大學的時候使用的turbo c對於我來說已經是很久之前的事情了,編寫c語言的還有vc 不過這貨在64的表現實現是很讓人失望,還是用最熟悉的vs吧,之前沒有用vs搞過c語言,今天倒騰了一下,重點分享一下自己的過程吧。1.首先你需要有個v...