c++中结构体的转换
对于原生c++,有如下结构体
struct Data
{
std::string str;
unsigned int ID;
double Value;
}
有一个函数bool GetData(Data* pData);
那么,c#如何调用该函数呢?一共两步
1、首先,我们要在托管c++中写一个与之对应的结构体OutputDataCS
public ref struct )DataCS
{
String^ str; ;
unsigned int ID;
Double Value;
};
2、定义一个包装函数GetData_CS供C#调用
bool GetData_CS(DataCS^ cs)
{
Data temp;//定义一个结构体临时变量
bool result= GetData(&temp);//调用c++函数
//开始转换
cs->str=gcnew String(temp. str.c_str()) ;
cs->Value=temp.Value ;
return result;;
}
如果是List列表,需要使用gcnew