Skip to content

Instantly share code, notes, and snippets.

@ironman9967
Last active August 31, 2016 13:50
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ironman9967/7681637 to your computer and use it in GitHub Desktop.
Save ironman9967/7681637 to your computer and use it in GitHub Desktop.
node-addon
#include <node.h>
using namespace v8;
struct point {
int x;
int y;
};
void pointerFunction(point* p) {
p->x = 99;
p->y = 11;
}
Handle<Value> GetPoint(const Arguments& args) {
HandleScope scope;
point* p = new point;
pointerFunction(p);
Local<Object> obj = Object::New();
obj->Set(String::NewSymbol("x"), Number::New(p->x));
obj->Set(String::NewSymbol("y"), Number::New(p->y));
delete p;
return scope.Close(obj);
}
void InitAll(Handle<Object> exports) {
exports->Set(String::NewSymbol("GetPoint"), FunctionTemplate::New(GetPoint)->GetFunction());
}
NODE_MODULE(addon, InitAll)
var addon = require('./build/Release/addon');
setInterval(function () {
console.log(addon.GetPoint());
}, 100);
{
"targets": [
{
"target_name": "addon",
"sources": [ "addon.cc" ]
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment