ScriptingCore::getInstance()->evalString()这个方法的使用问题

JS 代码
cc.CBloginByWeixin = function (accessToken, gender, iconurl, name, uid ) {
cc.log(‘cc.CBloginByWeixin 收到登录回调’)
c.log(‘accessToken’)
c.log(‘gender’)
c.log(‘iconurl’)
c.log(‘name’)
c.log(‘uid’)
}

C++代码

    std::string* script = new std::string();
    *script += "cc.CBloginByWeixin";
    *script += "(";

// *script += “的设计开发你的善良看你发来的快”;
map<string, string>::iterator it = data.begin();
for (; it != data.end(); ++it) {
// log("#### data %s -> %s.", it->first.c_str(), it->second.c_str());
*script += it->second.c_str();
if(strcmp(it->first.c_str(), “uid”) != 0)
*script += “,”;
}

    *script += ")";
    
    ScriptingCore::getInstance()->evalString(script->c_str());

输出
ScriptingCore:: evaluateScript fail: cc.CBloginByWeixin(A950F489683902AEE15342EFEA911F70,男,https://q.qlogo.cn/qqapp/101410979/3AC908DF4EAC4EAEC7B5CF004813551D/100,无所畏惧。,3AC908DF4EAC4EAEC7B5CF004813551D)

为什么一个参数可以,5个参数不行,还是因为参数格式错误?请教

题外话:好奇你这个script什么时候去delete?

C++处理完就delete

这个字符串都没加引号啊。。。
你最终合成的参数要加上引号。
因为已经在引号中,所以你要转义一下,用 " 把每个字符串参数包起来。

谢谢思路我去试试

请问下我包了一次还是不能正确收到数据呢

看错误日志,看看 c 是什么鬼。自己分析吧。完全用户代码自己问题。

好的 非常感谢