如何实现Halcon与C++间海量数据转换的高效对接?

摘要:HTuple-> VC 数据类型转换HTuple 转 int HTuple hTuple = 1; int Val1 = hTuple[0].I();HTuple 转 double HTuple hTu
HTuple-> VC 数据类型转换 // HTuple 转 int HTuple hTuple = 1; int Val1 = hTuple[0].I(); // HTuple 转 double HTuple hTuple = 1.1; double Val2 = hTuple[0].D(); // HTuple 转 CString HTuple hTuple = "cstring"; std::string str3 = hTuple[0].S(); // HTuple 转 bool HTuple hTuple = 1; // Halcon 中用整数表示布尔值 bool boolVal = (hTuple[0].I() != 0); // 非零值转为 true VC ->HTuple 数据类型转换 // int 转 HTuple int intVal = 2; HTuple hTuple = intVal; // 直接赋值(隐式转换) // double 转 HTuple double doubleVal = 2; HTuple hTuple = doubleVal; // 直接赋值(隐式转换) // CString 转 HTuple CString str = "CString"; HTuple hTuple2 = str.GetBuffer(); // CString → char* // QString 转 HTuple QString str4 = "QString"; HTuple hTuple3 = str4.toStdString().c_str(); // QString → char* HTuple hTuple4 = str4.toUtf8().constData(); // 减少一次拷贝 数据类型转换对照表 VC++类型 转换方式 提取方法 int 直接赋值 .I() double 直接赋值 D() CString .GetBuffer() .S() QString .toUtf8().constData() .S() bool 隐式转换 (true=1) hTuple[0].I() != 0 注意: HTpule 元组可能存储有多个元素以及多个数据类型,可采用 .Num() 函数获取其数据个数 int intNum = hTuple.Num();