最近在進行OSG開發,想將里面模型導入部分重復使用的代碼封裝成DLL,這樣后續不需要重復編寫這部分代碼了。而C++類封裝成DLL步驟如下:
1、 VS2015新建一個Win32項目,應用程序類型選擇DLL
2、新建DLL項目后,項目解決方案文件結構如下:

3、配置OSG庫
因為DLL使用到了OSG庫,所以項目首先要配置OSG庫,如下:
4、打開OSG.h頭文件,進行代碼編寫修改
在頭文件中加入OSG庫的相關頭文件,並且在類中進行函數和變量的聲明,頭文件如下(標紅部分為添加代碼):
5、在源文件中OSG.cpp中,添加類的函數相應的實現,如下
(
標紅部分為添加代碼
):
6、在VS2015中按F7(生成解決方案)
如果編譯成功,則輸出如下
如果是在Debug環境下編譯的,則在Debug目錄下會生成DLL文件和lib文件;Release環境下同理。另外,如果封裝后的DLL是在x64環境下的項目使用,則此處需要在Debug下的x64環境下編譯生成。
7、分別在DLL項目相應位置配置OSG.h、OSG.lib、OSG.dll三個文件,
我們就能使用封裝類的方法了(參看筆記:VS的可執行文件目錄、包含目錄、庫目錄、附加包含目錄、附加庫目錄、附加依賴項的解釋和區別)。
PS:在編譯成功生成DLL項目有,按Ctrl+F5 不調試執行,提示如下錯誤:

原因:
因為此DLL封裝項目不是可執行項目,運行不了的。只要編譯成功后,就完成了DLL的封裝。
<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">