C++ 如何在没有Qt的情况下反序列化QVariant的输出

C++ 如何在没有Qt的情况下反序列化QVariant的输出,c++,string,qt,deserialization,qvariant,C++,String,Qt,Deserialization,Qvariant,如何在不使用QT的情况下将输出QVariant反序列化为std::string 根据reqs,我的程序不能包含Qt QVariant.toString().tostString() 例如 file.ini(使用QSETING写入) profile_程序/*伪代码*/ int main () { void* IDQt =getIDFromIniFile("file.ini"); std::string myId = convertID(IDQt); process(myID);

如何在不使用QT的情况下将输出QVariant反序列化为std::string

根据reqs,我的程序不能包含Qt

QVariant.toString().tostString()

例如

file.ini(使用QSETING写入)

profile_程序/*伪代码*/

int main ()
{
   void* IDQt =getIDFromIniFile("file.ini");
   std::string myId = convertID(IDQt);
   process(myID);
}

查找源代码,可能是src/corelib/kernel/qvariant.cpp以查找
QDataStream&operator查找源代码,可能是src/corelib/kernel/qvariant.cpp for
QDataStream&operator您如何拥有一个
qvariant
,然后有不能调用其公共成员的限制?有一个程序可以使用QT将数据保存到Ini文件中。数据被记录为“\x1\0\0\0\xd0\x8c\x9d\xdf\x1\x”,因此我需要转换为char*来处理它们,以澄清您希望在不包含Qt的项目中反序列化QVariant的输出。您的原始问题措辞不正确,我建议您编辑您的帖子并添加一个示例。使用正确的明确定义的格式进行数据交换是不可能的?XML、JSon等。您如何拥有
QVariant
,然后有不能调用其公共成员的限制?有一个程序可以使用QT将数据保存到Ini文件中。数据被记录为“\x1\0\0\0\xd0\x8c\x9d\xdf\x1\x”,因此我需要转换为char*来处理它们,以澄清您希望在不包含Qt的项目中反序列化QVariant的输出。您的原始问题措辞不正确,我建议您编辑您的帖子并添加一个示例。使用正确的明确定义的格式进行数据交换是不可能的?XML、JSon等。
int main ()
{
   void* IDQt =getIDFromIniFile("file.ini");
   std::string myId = convertID(IDQt);
   process(myID);
}
quint32 QVariant::type()
quint8 QVariant::isNull()
if type()==UserType
  QString MetaType::typeName(userType())
end
if the variant is not valid
  QString empty
else
  -- MetaType::save(...)
end