C++調用C#庫簡單例程

有些時候,爲了使用別人已經寫好的C#庫文件,咱們須要使用C++調用C#庫文件; 如下作了一簡單的調用工程,步驟以下:.net

一、準備C#庫 (dll文件)
 
1)建立C#庫:
 
 
2)編寫C#類:
 
 
3)配置C#庫工程相關配置
(1)命名空間配置,輸出庫文件名配置:
 
 
(2)庫文件輸出路徑:

 
 
二、準備C++工程:
1)建立C++工程:
 
2)CLR支持(公共語言運行支持):
 
3)引用和調用C#代碼:
 
4)編譯直接運行:
 
5)運行調試:
 
 
三、其餘補充說明:
1)爲何使用gcnew 而不使用 new ?
     C++/CLI中使用 gcnew 關鍵字用來表示 在託管堆上分配內存,而且區分其餘指針的區別,使用 ^ 來代替 * 做爲指針含義, 語義上大體以下:
(1)、gcnew返回的是一個句柄(handle), 而new 返回的是實際的內存地址
(2)、gcnew建立的對象由虛擬機託管,而new建立的對象必須本身來管理和釋放
 
 在此不是有C++自己來分配內存空間,而是由其餘虛擬機託管分配,而且不須要C++程序來釋放空間
 
  若是想了解CLI更詳細狀況,能夠參考: http://www.codeproject.com/Articles/6882/A-first-look-at-C-CLI
 
2)使用#using 宏引入dll庫文件, 而不是 #pragma comment(lib, "")
     後面主要用於引入C/C++庫文件
 
 
3)執行時可能會出現如下問題:
主要是因爲exe程序加載的dll文件不存在或未找到,能夠:
將C#的庫文件和pdb文件 輸出到一個公共的文件夾下:如: ..\Out\Debug\ 文件夾
將C++的編譯程序exe和pdb文件也輸出到該公共文件夾下,
Linker配置:
 
 
四、例程源碼:
     http://download.csdn.net/detail/vagent/8953189
相關文章
相關標籤/搜索