日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言node程序,如何从Node.js调用C代码?

發布時間:2024/4/19 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言node程序,如何从Node.js调用C代码? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

那么V8允許從

JavaScript調用C代碼.

所以你可以有3部分代碼:

>正常C,不知道node.js和V8.這將是世界的地方.

> Glue node.js / V8-C代碼,允許JS“查看”你的世界類的部分.

>正常的JavaScript代碼,它通過“膠”層與C端進行通信

從上面的幻燈片鏈接:

#include

#include

using namespace v8;

extern "C" {

static void init(Handle target) {}

NODE_MODULE(module_name, init)

}

我們可以把它擴展到更接近你想要的東西:

SRC / world.h

#ifndef WORLD_H_

#define WORLD_H_

class World {

public:

void update();

};

extern World MyWorld;

#endif

SRC / world.cpp

#include "world.h"

#include

using std::cout;

using std::endl;

World MyWorld;

void World::update() {

cout << "Updating World" << endl;

}

SRC / bind.cpp

#include

#include

#include "world.h"

using namespace v8;

static Handle UpdateBinding(const Arguments& args) {

HandleScope scope;

MyWorld.update();

return Undefined();

}

static Persistent updateFunction;

extern "C" {

static void init(Handle obj) {

v8::HandleScope scope;

Local updateTemplate = FunctionTemplate::New(UpdateBinding);

updateFunction = v8::Persistent::New(updateTemplate);

obj->Set(String::NewSymbol("update"), updateFunction->GetFunction());

}

NODE_MODULE(world, init)

}

演示/ demo.js

var world = require('../build/Release/world.node');

world.update();

WScript的

def set_options(opt):

opt.tool_options("compiler_cxx")

def configure(conf):

conf.check_tool("compiler_cxx")

conf.check_tool("node_addon")

def build(bld):

obj = bld.new_task_gen("cxx", "shlib", "node_addon")

obj.cxxflags = ["-g", "-D_FILE_OFFSET_BITS=64", "-D_LARGEFILE_SOURCE", "-Wall"]

# This is the name of our extension.

obj.target = "world"

obj.source = "src/world.cpp src/bind.cpp"

obj.uselib = []

在Linux shell上,有些設置:

node-waf configure

要建立,運行:

node-waf

去測試:

node demo/demo.js

輸出:

Updating World

總結

以上是生活随笔為你收集整理的c语言node程序,如何从Node.js调用C代码?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。