ToCString的标题,或者如何将参数转换为cstrings?
我正在尝试在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
如何将V8string参数转换为以空字符结尾的8位Cstring?
我find了一个解决方法,因为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。