使用VS2017开发node C++插件

1.简介

Node.js 插件是用 C++ 编写的动态链接共享对象,可以使用 require() 函数加载到 Node.js 中,且像普通的 Node.js 模块一样被使用。 它们主要用于为运行在 Node.js 中的 JavaScript 与 C/C++ 库之间提供接口。

2.准备工作

1.安装vs2017,需要安装VC++相关模块
2.安装python2.7,需要加入环境变量
3.在node官网下载最新的node源代码

3.配置开发环境

  • 因为开发C++需要node相关的一些头文件,库文件,所以首先要用VS2017来编译node源代码
    这里按照node官网的说明,进入下载好的node源代码目录中,执行:
vcbuild

等一段时间即可完成node源代码的编译,编译后的可执行文件和库文件在Release目录下,头文件在src目录下

  • 用VS2017建立一个空的C++项目

  • 在项目属性设置你的开发平台,如果下载的是64位版本node,则选择平台为x64;如果下载的是32位版本node,则选择平台为win32,并且设置目标文件扩展名为.node,配置类型为动态库(.dll)


    使用VS2017开发node C++插件_第1张图片
  • 打开VC++目录


    使用VS2017开发node C++插件_第2张图片
  • 设置包含目录为node头文件所在目录


    使用VS2017开发node C++插件_第3张图片
  • 设置库目录为node库文件所在目录


    使用VS2017开发node C++插件_第4张图片
  • 设置在链接器——输入——附加依赖项中添加库文件node.lib


    使用VS2017开发node C++插件_第5张图片
  • 设置调试——命令为使用cmd命令行,设置命令参数为/k ..\node\Release\node.exe index.js,这里需要根据编译好的node可执行文件的文件路径来进行设置,这里设置js启动文件为index.js


    使用VS2017开发node C++插件_第6张图片

    这样整个VS2017环境就配置好了

4.测试

可以为项目中添加一下两个文件

//main.cpp

#include 

namespace demo {
    using v8::FunctionCallbackInfo;
    using v8::Isolate;
    using v8::Local;
    using v8::Object;
    using v8::String;
    using v8::Value;

    void Method(const FunctionCallbackInfo& args) {
        Isolate* isolate = args.GetIsolate();
        args.GetReturnValue().Set(String::NewFromUtf8(isolate, "world"));
    }

    //初始化函数
    void init(Local exports) {
        //导出Method方法,重命名为hello
        NODE_SET_METHOD(exports, "hello", Method);
    }

    //模块名为addon
    NODE_MODULE(addon, init)
}
 
 
//index.js

var start = require('../x64/Debug/start');
console.log(start.hello());

接着执行即可看到命令行中出现执行结果,relaxing

你可能感兴趣的:(使用VS2017开发node C++插件)