之前由於一直是初學階段,搜尋網上呼叫教程都是加法器直接return(a+b);但是有時候我們需要返回多個引數,譬如如果我們從c#介面上輸入a和b,我們要呼叫c++計算a²和b²並返回到c#一直不會弄,只能多開幾個函式乙個乙個值返回太複雜了。
方法:(例子為計算兩個引數平方值並返回)
1、在c++中新建乙個類,形參要用引用符號&
extern
"c"__declspec
(dllexport)
void
sum(
int&a,
int&b)
2、在標頭檔案中定義sum.h
extern
"c"__declspec
(dllexport)
void
sum(
int&a,
int&b)
;
3、然後就是一些輸出dll要設定的東西,這個可以看其他博主的教程
4、建立介面,在介面中對dll進行呼叫(ref引用非常關鍵)
[
dllimport
("lipstickdetectiondll.dll"
, callingconvention = callingconvention.cdecl)
]extern
static
void
sum(
refint a,
refint b)
;
5、建立呼叫方法以及按鈕事件
public
void
test
(out
int numa,
outint numb)
//呼叫的類,out用來返回值
private
void
button2_click
(object sender,
eventargs e)
最終結果:
可能這個例子比較簡單,也有一定的瑕疵,適合初學小白參考,只是做乙個記錄,大神輕噴。
C 呼叫Fortran的動態鏈結庫
由於在前一段時間做乙個課程設計,老師提供了乙個函式的fortran原始碼。雖然聽說c和fortran可以混合程式設計,但由於本人不會fortran,就選擇了將fortran的原始碼編譯成動態鏈結庫,並在c 中呼叫。fortran編譯動態鏈結庫 vs2019 在ivf安裝完成之後,在vs2019中新建...
C 呼叫C 動態鏈結庫dll
在過程中發現兩種方法解決問題 一種是非託管c 建立的dll庫,需要用靜態方法呼叫。這種方法無法在c 的reference中直接引用,而是要用靜態呼叫的方法,其他部落格已經介紹的很詳盡,唯一需要補充的是,c 檔案需要先 usingsystem.runtime.interopservices 之後才可以...
Python呼叫C 動態鏈結庫
1 安裝vs2010,或者以上的版本 2 建立win32應用程式,應用程式型別選擇dll。由於python是64位的,因此需要將win32程式設定為x64,即64位的。3 編寫程式add.cpp 4 編寫標頭檔案add.h。由於 比較少,也可以申明直接放在add.cpp中,此處為了規範,還是分開寫的...