乙個簡單的C 呼叫C 動態鏈結庫的例子

2021-10-06 19:03:05 字數 1178 閱讀 9969

之前由於一直是初學階段,搜尋網上呼叫教程都是加法器直接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中,此處為了規範,還是分開寫的...