【发布时间】:2016-08-17 21:22:48
【问题描述】:
由于某种原因 c_str() 返回空字符串,参数const chart**out_function 将保存文件操作的方法名称,如fopen 所以基本上我所做的是将我必须的字符串转换为 c_str() 但我得到一个空下面的字符串是我如何调用的
在这部分我只是准备了一个带有操作名称的字典,你可以注意到我只是将“fopen”作为字符串发送
pp::VarDictionary fileOp;
pp::VarArray args;
args.Set(0, "filename.txt");
args.Set(1, "wb");
fileOp.Set("args", args);
fileOp.Set("cmd", "fopen");
这个函数会解析上面发送的字典,并在out_params中返回out_function和args中的函数名称
int ParseMessage(pp::Var message, const char** out_function,
pp::Var* out_params) {
我使用这行代码将字符串转换为c_string,但它返回空文本
*out_function = cmd_value.AsString().c_str();
这是完整的代码,它基于 Google Native Client,但同时它是标准的 C/C++ 代码
【问题讨论】:
-
您正在存储一个指向已销毁临时对象的指针。
-
不要垃圾标签。没有语言“C/C++”,sn-ps 显然是 C++,而不是 C。
-
这三个都涉及到,我不是想发垃圾邮件
-
@MohammadAbuMusa C++ 中的编码不足以标记 C。您正在使用 std::string、命名空间和 OOP。那不是 C。