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。

https://github.com/rvagg/nan