有个程序段是判断type和state是否为相应数值,是的话判定为系统消息,如下
if(("4" == query.getStringField("ZTYPE"))&& ("0" == query.getStringField("ZSTATE"))
{
strAction = ph_convertToUTF8(L"KIK_系统消息",CP_UTF8);
}
然而运行起来后并不如预期,是因为getStringField返回的是const char * 值,比较的为地址,正确比较方法应该是
if(!strcmp("4" , query.getStringField("ZTYPE"))&& !strcmp("0" , query.getStringField("ZSTATE")))
{
strAction = ph_convertToUTF8(L"KIK_系统消息",CP_UTF8);
}
也可以在外面string type = query.getStringField(“ZTYPE”),再进行==比较。