测试环境

vs:vs2017
node.js:9.9.6

相关地址

官方文档对应地址:https://www.nodejs.org/api/addons.html
官方案例对应地址:https://www.github.com/nodejs/node-addon-examples

安装所需版本的Node.js

下载并且安装Node.js,在官网下载安装包即可。如果不想用最新版本,可以在https://www.nodejs.org/dist/下载别的版本。

安装Python2.7

安装Python2.7后,打开CMD,运行npm config set python python2.7。

安装gyp

以管理员模式打开CMD,运行npm install -g node-gyp,即可安装。 关于gyp可以参考https://github.com/nodejs/node-gyp#installation,里面有相关的安装需求说明。

编写代码以及配置文件

这个请参考官方文档。我这里直接以官方案例的HelloWorld为例。

打开CMD,切换目录至代码目录

1_hello_world 下有好几个文件夹,我选择了node_0.12,也就是说要切换到这个文件夹下。其中binding.gyp文件为配置文件。hello.cc是我们写插件代码的地方。hello.js用于测试。

运行node-gyp configure,如果配置文件没错的话,就会出现一个目录build,里面是VS的工程文件,你就可以使用VS进行编译了,当然也可以运行node-gyp build来编译

修改JS文件以及测试

将编译完的hello.node复制到代码所在目录(node_0.12)。

编辑hello.js文件,将
var addon = require('bindings')('hello');
改成
var addon = require('./hello.node');

这里的测试代码是远古版本的代码,所以需要修改。

之后开始测试,打开CMD,切换到hello.js所在目录,运行node hello.js,如果没有出问题,cmd就会输出world字符。

注意

NODE_MODULE(hello, init)中的hello是模块名,需要与文件名保持一致,不然编译没问题,运行时会出错。因为在require('./hello.node')时,既去找相应的文件,也匹配对应的MODULE。

Node.js c++ 扩展之HelloWorld的更多相关文章

  1. 编写Node.js原生扩展

    Node.js是一个强大的平台,理想状态下一切都都可以用javascript写成.然而,你可能还会用到许多遗留的库和系统,这样的话使用c++编写Node.JS扩展会是一个不错的注意. 以下所有例子的源 ...

  2. Node.js(1)-helloworld

    1.Node.Js 环境准备 下载地址: node.js http://nodejs.org/download/   vs.net集成开发环境: Node.js Tools for Visual St ...

  3. Node.js实战(二)之HelloWorld示例

    经过前面的Node.js实战(一)之概述 想必你应该对Node.js的概念.应用场景.优缺点等有个大致的了解,同时你本地Windows或者Linux上已经准备好了Node.js环境. 下面我们来进入每 ...

  4. node.js开发学习一HelloWorld

    前言:由于公司业务需求,最近启动了node.js的开发任务,想把自己的开发学习历程记录记录下来,可以增加记忆,也方便查找.虽然对javascript有一定的了解,但是刚接触node.js的时候,发现还 ...

  5. Node.js 极简入门Helloworld版服务器例子

    粗浅得很,纯属备忘. // 内置http模块,提供了http服务器和客户端功能(path模块也是内置模块,而mime是附加模块) var http=require("http"); ...

  6. (译+注解)node.js的C++扩展入门

    声明:本文主要翻译自node.js addons官方文档.部分解释为作者自己添加. 编程环境: 1. 操作系统 Mac OS X 10.9.51. node.js v4.4.22. npm v3.9. ...

  7. Node.js Addons翻译(C/C++扩展)

    PS:请先升级Node 6.2.1,Node 升级命令 npm install -g n;n stable.NOde.js扩展是一个通过C/C++编写的动态链接库,并通过Node.js的函数requi ...

  8. Node.js快速入门

    Node.js是什么? Node.js是建立在谷歌Chrome的JavaScript引擎(V8引擎)的Web应用程序框架. 它的最新版本是:v0.12.7(在编写本教程时的版本).Node.js在官方 ...

  9. hi-nginx-javascript vs node.js

    hi-nginx-1.4.9已经支持javascript,这意味着把javascript应用于后端开发,将不再只有nodejs这唯一的途径和方法.由于java本身对javascript的极好支持,使得 ...

随机推荐

  1. GitBook插件整理 - book.json配置

    目录 1. 配置概况 1.1. 全局配置 1.2. 插件列表 plugins 1.3. 插件属性配置pluginsConfig 2. 一些实用插件 2.1. back-to-top-button 回到 ...

  2. Vue(小案例_vue+axios仿手机app)_图片列表操作

    一.前言 1.让图片还没有被完全加载出来的时候给用户提示                                       2.图片查看器 二.主要内容 1.让图片还没有被完全加载出来的时候 ...

  3. 关于Java____________Object类

    一说Java 不聊聊Object 如何说你了解Java 不多说 具体看源码去 下面是Object的方法 以及方法的作用如下 protected Object clone ()              ...

  4. npm install 之前做的事

    在一个项目目录中,npm install之前,需要npm init,npm init会问你几个问题,有的需要输入,不想输入的一路回车就行,之后会自动创建一个package.json文件,有了这个pac ...

  5. [Android] 免费天气预报接口

    [Android] 免费天气预报接口 这是 国家气象局提供的天气预报接口 [免费] 当然,网上有很多的收费API或者每天定次数的接口 使用 国家气象局 的步骤如下: 1.首先获取城市ID号 北京:10 ...

  6. Nginx 站点设置目录列表显示

    Nginx 站点目录列表显示. 可以编辑添加在 server { } 模块 或者 location { } 模块下. autoindex on; # 开启目录文件列表 autoindex_exact_ ...

  7. 在Windows上安装Arduino-IDE

    Arduino IDE的官方下载地址为:http://arduino.cc/en/Main/Software 也可以从我的网盘下载:win系统 1.8.9版本 链接:https://pan.baidu ...

  8. python中字符串编码转换

    字符串编码转换程序员最苦逼的地方,什么乱码之类的几乎都是由汉字引起的. 其实编码问题很好搞定,只要记住一点: 任何平台的任何编码,都能和Unicode互相转换. UTF-8与GBK互相转换,那就先把U ...

  9. I2C与EEPROM

    一.基本概念 RAM(Random Access Memory)的全名为随机存取记忆体,它相当于PC机上的移动存储,用来存储和保存数据的.它在任何时候都可以读写,RAM 通常是作为操作系统或其他正在运 ...

  10. 洛谷P5206 [WC2019]数树 [容斥,DP,生成函数,NTT]

    传送门 Orz神仙题,让我长了许多见识. 长式子警告 思路 y=1 由于y=1时会导致后面一些式子未定义,先抓出来. printf("%lld",opt==0?1:(opt==1? ...