2019年6月2日 星期日

使用C#呼叫C++類別庫

本篇將介紹如何使用C#呼叫C++的類別並使用。

我們以C# Window Forms App作為範例。


新增Windows Form專案後,對方案按下右鍵/加入/新增專案

嘗試尋找一個C++的CLR類別庫專案。
註:如果找不到的話請見下一張圖。

如果沒有找到的話就必須先安裝CLI的套件。

新增完成後,進入C++的程式碼編輯器中。
我們在Class1類別中新增add()函數:
namespace ClassLibrary1 {
public ref class Class1
{
public:
int add(int number1, int number2)
{
return number1 + number2;
}
};
}
註:這個函數將回傳兩個參數加起來後的值。

接著對此專案按下右鍵/建置

建置完成後對著C#的專案按下右鍵/加入/參考

選擇剛剛建立的C++專案,按下確定。

加入完參考後就可以讓C#呼叫剛剛建立的類別了,我們進入最初建立的Windows Form表,對著表單點兩下進入C#的程式碼編輯器。

然後在表頭加入剛剛的名稱空間:
using ClassLibrary1;
註:意思就是引入剛剛在C++程式碼中出現的「namespace ClassLibrary1」

接著在Form1_Load中新增剛剛建立的Class1類別:
 Class1 c = new Class1();

然後使用Class1將自己定義的5跟10這兩個數字加起來:
int number = c.add(5, 10);

最後使用MessageBox顯示這個數字:
MessageBox.Show("" + number);

註:因為C#的字串類別的運算子有重載過,在字串後使用加號會自動將之後的型別轉成字串,所以我們用引號+數字就可以正常顯示該數字,並不需要大費周章的使用:
MessageBox.Show(Convert.ToString(number));


輸入完成之後按下執行:
如果看到剛才輸入的兩個數字加起來後的值,恭喜你,呼叫成功了。

=====分隔線=====
如果覺得這篇文有幫助到你們的話,請留言或幫忙按個廣告吧。

您的支持是我寫文的最大動力。

如果依然失敗了,也請留言讓我知道,看看哪個環節出了問題,我有看到就會回。


希望這篇文有幫助到各位ξ( ✿>◡❛)

沒有留言:

張貼留言

有興趣或有疑問的歡迎提問與交流喔!!!