gpt4 book ai didi

c++ - 从 Node JS 访问用 C++ 编写的设备 SDK

转载 作者:行者123 更新时间:2023-11-28 04:28:03 25 4
gpt4 key购买 nike

以下也引用Accessing an SDK that is written in c++ using node.js

我们有一个 device可以扫描文档/条形码/二维码并通过 USB 输出。设备制造商提供了一个仅用 csharp、c++、java 编写的 SDK。现在我们决定从 Node 访问 C++ 代码。经过数小时的痛苦后,我能够运行此 c++ 代码,它恰好是一个控制台应用程序,它将在控制台中打印扫描的文档数据并将扫描的文档保存在特定位置。现在的要求是,无论设备使用 c++ 代码做什么,我们都需要从 Node 执行它,除了在控制台中打印它之外,我们必须在使用 Angular 开发的 Web 应用程序中显示它。我在互联网上找到的解决方案很少,比如 NAPI 和 C++ Addon by Node,SWIG 用于创建 package 类。我在这里对如何进行感到有点困惑,因为我不知道上述两种建议的方法将如何工作,甚至对于上述要求是否可行。我还想利用设备制造商提供的 SDK,因为它拥有设备的所有/大部分功能。

总结以上冗长的要求:

  • 我有一个与设备通信的 C++ SDK,我想使用它从 node.js 访问此 c++ 代码,我该如何继续?如果我将采用上述任何一种方式,是否需要重写 c++ 代码以从 node.js 访问

  • c++ SDK provided by the device manufacturer , 如果你想拥有看看。它有c++、csharp、java,但我们可以专注于c++

上述链接中的所有代码均受设备制造商的版权保护。我对此不持有任何主张

最佳答案

对于 C++ 接口(interface),您将为 Node 创建一个 C++ 插件。该插件会将函数作为模块公开给 Node ,例如 const myCppApi = require('bindings)('yourNativeAddonName') 不同之处在于模块背后的代码不是 javascript 而是进行调用的 native package 器编译代码。或者换句话说,您可以在哪里使用条形扫描仪的 C++ API。

可以在 node.js API 文档中找到这方面的示例 https://nodejs.org/api/addons.html

为了您的目的,我建议您使用 N-API 并忽略其他方法,因为 N-API 不依赖于您对 v8 了解太多(v8:: 命名空间,Isolates , 上下文等)以及 chromium 的工作原理。相反,一切都被简化了。

您可以查看此示例存储库以了解如何使用 N-API https://github.com/nodejs/abi-stable-node-addon-examples/tree/master/1_hello_world/napi

有用的提示:由于我看到您正在使用 Electron ,因此请确保针对与您的 Electron 正在使用的 Node 版本相同的 Node 版本构建您的模块。您可以通过在主进程中打印 process.version 或在 Electron 页面上查找它们来检查它们。

关于c++ - 从 Node JS 访问用 C++ 编写的设备 SDK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53762091/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com