博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Windows10 + Nodejs调用C++语言Dll
阅读量:4046 次
发布时间:2019-05-24

本文共 2073 字,大约阅读时间需要 6 分钟。

一、安装环境

首先需要安装nodejs环境

安装NodeJS解释器:

需要安装ms_build环境,因为node14需要匹配VS2015。执行一下命令:

C:Windows\System32\>npm install --global --production windows-build-tools --vs2015

等待几分钟安装需要的环境

经过实验,不需要额外安装MSBuild,直接安装Visual Studio 2017 Community即可

1. 安装node-gyp

C:\Windows\System32>npm install -g node-gyp

2. 安装Python

默认的新版的nodejs可能需要高版本的Python支持,这里是选择了anaconda自带的Python

并在环境变量中添加python路径

下载并安装anaconda()

在系统的Path变量中添加anaconda环境,如下图所示:

这里填写的路径需要根据自己的实际情况调整

接着在命令行运行python测试python是否正常安装

表示安装成功。

3. 安装Visual Studio 2017

笔者的机器默认使用Visual Studio 2017 Community作为编译工具。

(笔者的机器上nodejs推荐的MSBuild 2015无法正常工作。)

接着设置默认的MSBuild工具集(如果你的机器只安装了一个版本Visual Studio可以不执行此步骤)

npm config set msvs_version 2017

二、运行Demo

Demo参考地址:

1. 第一个例子需要准备以下4个文件首先建立一个hello目录,然后再编辑以下文件:

hello.cc

/* FileName: hello.cc*/#include 
Napi::String Method(const Napi::CallbackInfo& info) { Napi::Env env = info.Env(); return Napi::String::New(env, "world");}Napi::Object Init(Napi::Env env, Napi::Object exports) { exports.Set(Napi::String::New(env, "hello"), Napi::Function::New(env, Method)); return exports;}NODE_API_MODULE(hello, Init)

 package.json

{  "name": "hello_world",  "version": "0.0.0",  "description": "Node.js Addons Example #1",  "main": "hello.js",  "private": true,  "dependencies": {    "bindings": "~1.2.1",    "node-addon-api": "^4.0.0"  },  "scripts": {    "test": "node hello.js"  },  "gypfile": true}

binding.gyp

{  "targets": [    {      "target_name": "hello",      "cflags!": [ "-fno-exceptions" ],      "cflags_cc!": [ "-fno-exceptions" ],      "sources": [ "hello.cc" ],      "include_dirs": [        "

hello.js

var addon = require('./build/Release/hello.node');console.log(addon.hello()); // 'world'

编译该文件需要依赖node-addon-api这个模块

在当前hello目录下执行命令

hello\>npm install node-addon-api

执行以后会自动下载'node-addon-api'这个模块并生成一个package-lock.json的配置文件

然后执行以下命令进行编译配置

hello\>node-gyp configure

会配置并生成一个build目录,里面有visual studio的sln、project文件

接着执行以下命令进行编译,也可以在build目录中打开sln文件用visual studio进行编译

hello\>node-gyp build

构建组件:

最终生成的hello.node就算我们需要的nodejs库(C++)

执行 命令node.js测试结果

hello\>node hello.js

参考:

转载地址:http://twwci.baihongyu.com/

你可能感兴趣的文章
gstreamer相关工具集合
查看>>
RS232 四入四出模块控制代码
查看>>
gstreamer插件之 videotestsrc
查看>>
linux 驱动开发 头文件
查看>>
/etc/resolv.conf
查看>>
container_of()传入结构体中的成员,返回该结构体的首地址
查看>>
linux sfdisk partition
查看>>
ipconfig,ifconfig,iwconfig
查看>>
opensuse12.2 PL2303 minicom
查看>>
网络视频服务器移植
查看>>
Encoding Schemes
查看>>
移植QT
查看>>
如此调用
查看>>
计算机的发展史
查看>>
带WiringPi库的交叉编译如何处理一
查看>>
带WiringPi库的交叉笔译如何处理二之软链接概念
查看>>
Spring事务的七种传播行为
查看>>
ES写入找不到主节点问题排查
查看>>
Java8 HashMap集合解析
查看>>
欢迎使用CSDN-markdown编辑器
查看>>