【OPCUA】UA_String转为QString

发布时间 2023-10-12 16:53:09作者: hely_ljm

 

字符串:UA_String 

typedef struct
{
  size_t length;
  UA_Byte* data;
}UA_String;
 生成UA_String的API有三个UA_STRING,UA_STRING_ALLOC,UA_STRING_STATIC
  • UA_STRING                -  包装现有数据(实际应用中,会有一些莫名其妙的问题)
  • UA_STRING_ALLOC    -  堆分配内存,使用过后需要释放一下,推荐使用
  • UA_STRING_STATIC
参考: https://www.codeleading.com/article/26966339645/ 
==================================================================
 
字符串转换
 
1.QString转换String
string s = qstr.toStdString();
 
2.String转换QString
QString qstr2 = QString::fromStdString(s);
 
3.QString 转为 UA_String
QString str = “1234”;
UA_String s = UA_STRING_ALLOC((char*)str.toStdString().c_atr());
 
4.UA_String 转为 QString
UA_String* pData = (UA_String*)(input+i)->data;
 
// +尾部截断
if(pData->length > 0){
    pData->data[pData->length] = '\0';                
}
 
QString s = QString((char*)pData->data);