ToCString 的标头在哪里,或者如何将参数转换为 cstring?



我正在尝试在NodeJS插件中使用ToCString。

String::Utf8Value foo_utf8(args[0]->ToString());
const char *foo = ToCString(foo_utf8);

我找不到它的标题,如果我手动将其原型

化为:
const char* ToCString(const v8::String::Utf8Value& value);

然后我得到一个运行时错误:

node: symbol lookup error: /home/chris/Dropbox/cbackend/build/Release/cbackend.node: 
undefined symbol: _Z9ToCStringRKN2v86String9Utf8ValueE

如何将 V8 字符串参数转换为以空值结尾的 8 位 C 字符串?

我找到了解决方法,因为ToCString函数(无论它位于何处)都是微不足道的。 只需添加:

const char* ToCString(const v8::String::Utf8Value& value) {
  return *value ? *value : "<string conversion failed>";
}

根据文档,v8 具有用于 cstr 转换的运算符:

Local<Value> value = get_value();     // nan† thing, you can ignore this
v8::String::Utf8Value string(value);
char* str = *string;                  // defined as:        char * operator* () 
const char* const_str = *string;      // defined as:  const char * operator* () const 

这适用于 njs v0.10 和 v0.11。

https://github.com/rvagg/nan

相关内容

  • 没有找到相关文章

最新更新