C 打包成DLL動態鏈結庫在Unity中去呼叫

2021-08-30 13:22:04 字數 1060 閱讀 6988

很多時候我們在用unity的時候都會碰到一些c++的**,而我們在unity中只能使用c#所以如果我們把c++**直接打包成dll就可以直接呼叫其中的方法了;本人在這裡使用的是vs2017

1.新建c++專案(專案型別為「動態鏈結庫(dll)」)

2.新建完成後會出現stdafx.h和targetver.h兩個標頭檔案以及connecteddomaintest.cpp、dllmain.cpp、stdafx.cpp三個原始檔,在targetver.h中我們可以宣告需要匯出的dll中包含的函式,在connecteddomaintest.cpp中進行這個函式的實現。

3.配置屬性

4.編譯打包dll檔案

設定完成後進行專案生成

至此可以在該專案所在的資料夾debug中找到編譯得到的dll檔案。

5.在c#中呼叫 本人這裡是在unity中去使用的所以把dll動態鏈結庫直接放到了plugins資料夾下

如果是在vs新建的專案中直接使用可以 將c++的dll檔案拷貝到c#的bin目錄下,拷貝到相應的檔案中,如x64平台下的debug中或release中

謹以此文用來做筆記

動態鏈結庫DLL

函式和資料被編譯進乙個二進位制檔案 通常擴充套件名為.lib 靜態庫 在使用靜態庫的情況下,在編譯鏈結可執行檔案時,鏈結器從庫中複製這些函式和資料並把它們和應用程式的其它模組組合起來建立最終的可執行檔案 exe檔案 在多個同樣的程式執行時,系統保留了許多重複的 副本,造成記憶體資源浪費。動態庫 使用...

建立C 動態鏈結庫 dll

先來一段vc 給我們提供的標準模板 ifdef connection exports define connection api declspec dllexport else define connection api declspec dllimport endif 此類是從 connectio...

C 呼叫C 動態鏈結庫dll

在過程中發現兩種方法解決問題 一種是非託管c 建立的dll庫,需要用靜態方法呼叫。這種方法無法在c 的reference中直接引用,而是要用靜態呼叫的方法,其他部落格已經介紹的很詳盡,唯一需要補充的是,c 檔案需要先 usingsystem.runtime.interopservices 之後才可以...