结构体数组的结构体"/>
C# 调用C++ dll 传入传出包含结构体数组的结构体
C#调用C++ Dll传入传出包含结构体数组的结构体方法如下,直接上代码:
C#:
定义结构体:
public struct SWRESULT
{
public float pmA_res;
public float pmB_res;
}
public struct RESULTS
{
public int case_num;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
public SWRESULT[] sw_result;
}
调用c++ dll:
[DllImport("TestSetManage.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "Test_Struct")]
public static extern int Test_Struct(ref RESULTS result);
主程序:
private void testStruct()
{
RESULTS results;
results.sw_result =new SWRESULT[20];
results.case_num = 2;
results.sw_result[0].pmA_res= 35.13;
Test_Struct(ref results);
return;
}
**************************************************************************************************************
C++:
定义相对应的结构体:
typedef struct _SWRESULT
{
public:
float pmA_res;
float pmB_res;
}SWRESULT;
typedef struct _RESULTS
{
public:
int case_num;
SWRESULT sw_result[20];
}RESULTS;
TestSetControl_API int __cdecl Test_Struct(RESULTS& testresults);
int __cdecl Test_Struct(RESULTS &testresults)
{
testresults.case_num = 2;
testresults.sw_result[0].pmA_res=20.5;
return 1;
}
新手记录学习过程,大佬发现问题请指教。
更多推荐
C# 调用C++ dll 传入传出包含结构体数组的结构体
发布评论