天天看點

C++項目中采用CLR的方式調用C#編寫的dll

1、注意事項:在編寫C#DLL類庫時,最好不要出現相同的命名空間,否則在C++中調用可能會出現編譯錯誤。

2、将C#的源碼生成的“dll”檔案複制到C++項目中的Debug目錄下

3、将C++項目屬性設定為公共語言運作時支援

4、在項目中導入dll檔案和引用命名空間

#using "../debug/xxx.dll"
using namespace xxxx;           

複制

5、執行個體化C#對象:CL ^cl = gcnew CL();

6、調用C#帶out string[] 參數的方法:intPowerOff(out string[] FrameAry)

array<String^>^  FrameAry = gcnew array<String^>(0);
int result = cl->PowerOff(FrameAry);
printf("上行封包:%s", FrameAry[0]);           

複制

7、調用帶int類型和string類型的方法

int r = cl->InitSetting(1, 3000, 200, "193.168.18.11", 10004, 20000);           

複制

8、調用帶int[] 、Single[]類型參數的方法:boolSetHarmonic(int Phase,int[] int_XTSwitch,  Single[] sng_Value, Single[] sng_Phase,out string[] frameAry)

array<String^>^  FrameAry = gcnew array<String^>(0);
array<float>^  floatArray = gcnew array<float>(1);
array<int> ^ intArray = gcnew array<int>(1);
int n = cl->SetHarmonic(1, intArray, floatArray, floatArray, FrameAry);           

複制