我想从页面中读取Javascript值,但是如何读取呢?
std::string jscript("[appdata]");
JSValue value = view_->web_view()->ExecuteJavascriptWithResult(WSLit(jscript.c_str()), WSLit(""));
JSArray& arr = value.ToArray();
std::string appdata = arr[0].ToString;当我尝试使用它时,我得到了Awesomium::JSValue::ToString:非标准语法;使用'&‘来创建指向成员的指针
我不知道把&放在哪里
发布于 2016-12-24 02:07:53
我的C++相当生疏,但是您不需要在末尾添加括号吗?
std::string appdata = arr[0].ToString();目前,代码似乎试图获得一个指向成员函数ToString的指针,并将其赋值给std::string变量。
发布于 2016-12-24 02:17:32
好吧,以下是未来仙人的答案:
JSValue MyValue = view_->web_view()->ExecuteJavascriptWithResult(WSLit("appdata"), WSLit("")).ToString();
WebString asd(MyValue.ToString());
std::string appdata = ToString(asd);发布于 2017-01-24 06:27:05
试着改变:
std::string appdata = arr[0].ToString;至
Awesomium::WebString appdata = arr[0].ToString();正如所说,您正在将方法ToString分配给变量appdata。添加括号时,它会发出函数调用,而不是将函数直接赋值给变量。
另外,当添加括号时,编译器错误消息告诉您,它不能将类型"Awesomium::WebString“转换为"std::string”类型。在行的开头,您有std::string appdata,这声明了一个类型为std::string的变量appdata。但是,方法ToString()返回没有转换到std::string类型的Awesomium::WebString类型
编辑:@bugraarslan基于经验,我会警惕你的解决办法。这两种类型之间没有很容易的转换,因为它们没有编写一个。通常,这意味着您可以使用Awesomium::WebString类型,也可以通过使用熟悉的类型(即std::string )来对抗库。图书馆不会对自己的固执感到厌倦,但要随心所欲。
我没有足够的声誉来发表评论。因此,我不得不修改我的答案。
https://stackoverflow.com/questions/41309673
复制相似问题