C 實現呼叫C CLI 方法

2021-07-07 03:16:14 字數 1172 閱讀 8880

把c#編譯成dll或者axtive控制項,再由c呼叫 !

比如使用c++呼叫c#的dll

swfdotnet是c#編寫的,作者的c#水平,真是令我佩服。這是個特別好的讀寫swf檔案的庫。但是,我要用在c++專案中,怎麼讓c++呼叫c#的dll呢。今天一上午都在琢磨這個問題,耽誤了很多時間,原因是編譯是出現:

warning c4819: 該檔案包含不能在當前**頁(936)中表示的字元。請將該檔案儲存為 unicode 格式以防止資料丟失。

接著就是一大堆的0x01等等。自己做了個sample,仔細分析發現還是自己沒有搞清楚。正確的操作如下:

1 建立c# dll,需要指定應用型別為「類庫」,**:

namespace cslib

set}}}

2 c++客戶程式,是個控制台應用,**:

#using "..\debug\cslib.dll"

using namespace cslib;

int _tmain(int argc, _tchar* argv)

3 幾點要記住:

1 使用#using引用c# dll,而不是#include。我就是想當然的使用了後者,所以浪費了一上午的時間;

2 別忘了using namespace cslib;

3 使用c++/clr語法,採用正確的訪問託管物件,即:使用帽子'^',而不是星星'*'。

c++利用反射呼叫c#函式

1.引入.net命名空間

using namespace  system;

using namespace system::windows::forms;

using namespace system::reflection;

2.在要執行呼叫的函式中寫如下**

assembly ^ a = assembly::loadfrom(_t("i:\\test\\bin\\vc90\\cslib.dll"));

type ^ formtype = a->gettype(_t("cslib.form1"));

form ^ f = nullptr;

f = (form ^)activator::createinstance(formtype);

f->tag = _t("testtag"); 

f->showdialog();

f->tag是用來傳引數用的。

C 呼叫C 的DLL實現方法

具體的實現步驟如下 一 建立c dll,需要指定應用型別為 類庫 namespace cslib set 二 c 客戶程式,是個控制台應用,using debug cslib.dll using namespace cslib int tmain int argc,tchar argv 三 這裡有幾...

C 實現快遞api介面呼叫方法

無平台限制,依賴於快遞api網介面 實體類 datacontract public class syncresponseentity 需要查詢的快遞代號 datamember order 0,name id public string id 需要查詢的快遞名稱 datamember order 1,...

C 呼叫方法

本小節我們學習兩個簡單的呼叫方法 c 呼叫方法 遞迴方法呼叫,下面我們用 段來實現這兩種呼叫方法。1.本方法解析,讓使用者通過控制台輸入三個浮點型變數,返回給使用者最小值。例項 class comparesize public double findsize 為獲取的資料佔位 public void...