C#与C++之间dll的二维(多维)数组传递
生活随笔
收集整理的這篇文章主要介紹了
C#与C++之间dll的二维(多维)数组传递
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
思維:用結構體作為中間變量,也就是傳遞結構體,然后在C#中把結構體中的數據放進二維數組中。
C#接收代碼的形式:(這里只是思路展示,非可運行代碼)
[DllImport("myDLL.dll", CallingConvention = CallingConvention.Cdecl)]public static extern void myFunc([In][MarshalAs(UnmanagedType.LPArray, SizeConst = 0)] InStruct[] istruct, [Out] [MarshalAs(UnmanagedType.LPArray, SizeConst = 0)] OutStruct[] outstruct);public struct InStruct{public int x;public int y;public int z;}public struct OutStruct{public int x;public int y;public int z;}//把C++通過結構體接收的數據,裝在二維數組中int[,] data = new int[3,100];InStruct[] instruct = new InStruct[100];OutStruct[] outstruct = new OutStruct[100];//在二維數組data中接收outstruct中的數據C++中封裝的形式:
struct InStruct {int x;int y;int z; }; struct OutStruct {int x;int y;int z; }; extern "C" __declspec(dllexport) void myFunc(InStruct *instruct, OutStruct *outstruct) {InStruct instruct[100];OutStruct outstruct[100];//使用結構體對象傳進來或者傳出去數據,可以把二維數組的數據先賦給結構體 }總結
以上是生活随笔為你收集整理的C#与C++之间dll的二维(多维)数组传递的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C#Winform怎么让控件随着主界面大
- 下一篇: c# char unsigned_dll