Node.js中JavaScript与C++的数据类型转换(node_0.12, node_4.3)
来源:互联网 发布:淘宝云客服培训 编辑:程序博客网 时间:2024/06/06 07:52
args -> int
node_0.12
void foo(const FunctionCallbackInfo<value>& args) {Isolate* isolate = Isolate::GetCurrent();HandleScope scope(isolate);if( args[0]->IsUndefined()){std::cerr << "In foo(): parameters undefined." << std::endl;return;}v8::Handle<v8::value> theArg = args[0];if (theArg->IsInt32()) {int value = theArg->Int32Value();}}
node_4.3
void MyClass::foo(const FunctionCallbackInfo<value>& args) {Isolate* isolate = args.GetIsolate();MyClass* obj = ObjectWrap::Unwrap<MyClass>(args.Holder());int value = args[0]->IsUndefined() ? 0 : args[0]->NumberValue(); // ... }
返回 int变量
node_0.12
void foo(const FunctionCallbackInfo<Value>& args) {Isolate* isolate = Isolate::GetCurrent();HandleScope scope(isolate);//...args.GetReturnValue().Set(v8::Int32::New(isolate, 1));return;}
v8::Handle<v8::Value> -> double
node_0.12
void foo(const FunctionCallbackInfo<Value>& args) {Isolate* isolate = Isolate::GetCurrent();HandleScope scope(isolate);if( args[0]->IsUndefined()){std::cerr << "In foo(): parameters undefined." << std::endl;return;}v8::Handle<v8::Value> theArg = args[0];if (theArg->IsNumber()) {double value = theArg->NumberValue();}}
node_4.3
void MyClass::foo(const FunctionCallbackInfo<value>& args) {Isolate* isolate = args.GetIsolate();MyClass* obj = ObjectWrap::Unwrap<MyClass>(args.Holder());double value = args[0]->IsUndefined() ? 0 : args[0]->NumberValue(); // ... }
返回 Number变量
void foo(const FunctionCallbackInfo<Value>& args) {Isolate* isolate = Isolate::GetCurrent();HandleScope scope(isolate);//...args.GetReturnValue().Set(v8::Number::New(isolate, 0.0));return;}
v8::Handle<v8::Value> -> string
node_0.12
void foo(const FunctionCallbackInfo<Value>& args) {Isolate* isolate = Isolate::GetCurrent();HandleScope scope(isolate);if( args[0]->IsUndefined()){std::cerr << "In foo(): parameters undefined." << std::endl;return;}v8::Handle<v8::Value> theArg = args[0];if (theArg->IsString()) {v8::String::Utf8Value utf8_value(theArg);std::string variableName = *utf8_value;}}
node_4.3
void MyClass::foo(const FunctionCallbackInfo<value>& args) {Isolate* isolate = args.GetIsolate();MyClass* obj = ObjectWrap::Unwrap<MyClass>(args.Holder());if( args[0]->IsUndefined()){ return; }char *name; v8::String::Utf8Value str(args[0]->ToString());name = *str; // ... }
void foo(const FunctionCallbackInfo<Value>& args) {Isolate* isolate = Isolate::GetCurrent();HandleScope scope(isolate);std::string name = "foo";//...args.GetReturnValue().Set(v8::String::NewFromUtf8(isolate,name.c_str()));return;}
v8::Handle<v8::Value> -> bool
void foo(const FunctionCallbackInfo<Value>& args) {Isolate* isolate = Isolate::GetCurrent();HandleScope scope(isolate);if( args[0]->IsUndefined()){std::cerr << "In foo(): parameters undefined." << std::endl;return;}v8::Handle<v8::Value> theArg = args[0];if (theArg->IsBoolean()) {bool value = theArg->BooleanValue();}}
返回Boolean变量
void foo(const FunctionCallbackInfo<Value>& args) {Isolate* isolate = Isolate::GetCurrent();HandleScope scope(isolate);//...args.GetReturnValue().Set(v8::Boolean::New(isolate, true)); return;}
v8::Handle<v8::Array> 参数
void foo(const FunctionCallbackInfo<Value>& args) {Isolate* isolate = Isolate::GetCurrent();HandleScope scope(isolate);if( args[0]->IsUndefined()){std::cerr << "In foo(): parameters undefined." << std::endl;return;}v8::Handle<v8::Value> theArg = args[0];if (theArg->IsArray()) {v8::Handle<v8::Array> theArray = v8::Handle<v8::Array>::Cast(theArg);int length = theArray->Length();v8::Handle<v8::Value> arrayItem = theArray->Get(v8::Int32::New(isolate, 0));}}
返回Array变量
void foo(const FunctionCallbackInfo<Value>& args) {Isolate* isolate = Isolate::GetCurrent();HandleScope scope(isolate);//...v8::Handle<v8::Array> resultArray = v8::Array::New(isolate);resultArray->Set(v8::Integer::New(isolate, i), v8::Number::New(isolate, 1.1));args.GetReturnValue().Set(resultArray); return;}
args->char*
Local<Value> arg1 = args[0]; if (Buffer::HasInstance(arg1)) { size_t size = Buffer::Length(arg1->ToObject()); char* bufferdata = Buffer::Data(arg1->ToObject()); //to do with size and bufferdata return scope.Close(Number::New(size)); } else { return scope.Close(Number::New(-1)); }
0 0
- Node.js中JavaScript与C++的数据类型转换(node_0.12, node_4.3)
- 开发Node.js的Windows版C/C++原生扩展(node_0.10和node_0.12)
- [JS]JavaScript数据类型与变量类型转换
- JavaScript与Node.js
- javascript与node.js的区别
- javascript中数据类型转换
- javascript中数据类型转换
- JavaScript中数据类型转换
- js 数据类型与转换
- js中数据类型转换
- js中数据类型转换
- js中数据类型转换
- JS中数据类型转换
- JavaScript中的3中强制转换数据类型的方法
- javascript中数据类型之间的转换
- javaScript中各种数据类型的转换总结
- javascript中数据类型的隐式转换
- [iOS]Objective-C中字符串数据类型与基础数据类型的相互转换
- 2.1散点图
- nested exception is java.lang.NoClassDefFoundError: org/aspectj/lang/annotation/Around
- LeetCode #Palindrome Number#
- android项目出现红色感叹号、调用API出错的几种解决办法
- 华农校赛E题
- Node.js中JavaScript与C++的数据类型转换(node_0.12, node_4.3)
- Veil:免杀payload生成工具
- 日拱一卒(三十五)
- XML 文件
- vim plugin YouCompleteMe
- 设计模式六大原则(3):依赖倒置原则
- 访问函数_set和_get
- 在XSLT中非XPATH中的大括号{}的使用
- 菜鸟 该如何应对服务器被黑