vs2013 打包並呼叫dll(opencv,多函式複雜情況下)
首先,先推薦兩個具有高質量的部落格,先把這兩個案例做成功了,我這邊的案例也差不多了。
博主認為使用函式進行打包的方法更加簡單。為避免前兩個博主的文章消失,我再說一些我的這邊的過程。主要說使用函式打包的方法,響應題目。 使用函式打包: 1. 這個專案的第一件事情:建立無匯出符號的dll空專案; 2. 然後就是將之前寫的函式程式碼複製進去,再去配置opencv的環境,錯誤都解決好了如下圖。 複製程式碼過程:dllmain.cpp不用管,將之前寫的函式程式碼複製到新建的專案cpp中,圖片中Imgset.cpp是我的專案中新加的cpp檔案,這就是複雜的地方,但是僅僅引用現有cpp檔案就可以了,沒有影響。 注意:
如果之前的函式有要呼叫的相對路徑的檔案的話,在這裡不用複製到這個專案的相對路徑下,而是複製到呼叫這個dll的專案下去使用; 記得在需要呼叫的函式那裡加上__declspec(dllexport) void Bleeding()中的__declspec(dllexport) 。
3.然後生成,即可得到dll和lib檔案;
呼叫dll:
1. 新建專案C++/Win32控制檯應用程式,命名。選擇沒有預編譯頭。 2. 呼叫dll內的類函式。 // test_Bleed.cpp : 定義控制檯應用程式的入口點。
//
#include "stdafx.h"
#include <stdio.h>
#include <iostream>
using namespace std;
#pragma comment(lib, "Bleed.lib") //呼叫dll檔案時候必須用到的
void Bleeding(); //對剛才寫好的處理函式進行宣告
//主函式
int main()
{
Bleeding();
return 0;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
3.生成解決方案,現在肯定是很多錯誤; 4.將dll和lib檔案拷貝到debug資料夾下,與exe檔案是同一個資料夾,另外,之前dll引用的檔案也都複製到現在這個專案的與cpp同一資料夾下; 5.右鍵專案名字選擇屬性,->配置屬性->VC++目錄->常規-庫目錄,選擇你放置了lib的debug資料夾。 ->配置屬性->連結器-輸入-附加依賴項-編輯加入lib的檔名(全名包含字尾)-確認 6.重新生成,執行即可
然後就成功了,博主是一般看到網上沒有一些好的資料的時候,就會寫一些東西到csdn上來,一般都是挺不錯的資料,我覺得。覺得同樣感覺到不錯的朋友可以點一波關注~
首先,先推薦兩個具有高質量的部落格,先把這兩個案例做成功了,我這邊的案例也差不多了。
博主認為使用函式進行打包的方法更加簡單。為避免前兩個博主的文章消失,我再說一些我的這邊的過程。主要說使用函式打包的方法,響應題目。 使用函式打包: 1. 這個專案的第一件事情:建立無匯出符號的dll空專案; 2. 然後就是將之前寫的函式程式碼複製進去,再去配置opencv的環境,錯誤都解決好了如下圖。 複製程式碼過程:dllmain.cpp不用管,將之前寫的函式程式碼複製到新建的專案cpp中,圖片中Imgset.cpp是我的專案中新加的cpp檔案,這就是複雜的地方,但是僅僅引用現有cpp檔案就可以了,沒有影響。 注意:
如果之前的函式有要呼叫的相對路徑的檔案的話,在這裡不用複製到這個專案的相對路徑下,而是複製到呼叫這個dll的專案下去使用; 記得在需要呼叫的函式那裡加上__declspec(dllexport) void Bleeding()中的__declspec(dllexport) 。
3.然後生成,即可得到dll和lib檔案;
呼叫dll:
1. 新建專案C++/Win32控制檯應用程式,命名。選擇沒有預編譯頭。 2. 呼叫dll內的類函式。 // test_Bleed.cpp : 定義控制檯應用程式的入口點。
//
#include "stdafx.h"
#include <stdio.h>
#include <iostream>
using namespace std;
#pragma comment(lib, "Bleed.lib") //呼叫dll檔案時候必須用到的
void Bleeding(); //對剛才寫好的處理函式進行宣告
//主函式
int main()
{
Bleeding();
return 0;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
3.生成解決方案,現在肯定是很多錯誤; 4.將dll和lib檔案拷貝到debug資料夾下,與exe檔案是同一個資料夾,另外,之前dll引用的檔案也都複製到現在這個專案的與cpp同一資料夾下; 5.右鍵專案名字選擇屬性,->配置屬性->VC++目錄->常規-庫目錄,選擇你放置了lib的debug資料夾。 ->配置屬性->連結器-輸入-附加依賴項-編輯加入lib的檔名(全名包含字尾)-確認 6.重新生成,執行即可
然後就成功了,博主是一般看到網上沒有一些好的資料的時候,就會寫一些東西到csdn上來,一般都是挺不錯的資料,我覺得。覺得同樣感覺到不錯的朋友可以點一波關注~