当前位置: 首页 > news >正文

electron调用c++ dll lib

主要的工具包

  1. node-addon-api
  2. node-gyp

主要的配置

{"variables": {# 'module_mac': "./../sdk/mac",},"targets": [{"target_name": "native_module","defines": ["NAPI_DISABLE_CPP_EXCEPTIONS"],"cflags!": ["-fno-exceptions"],"cflags_cc!": ["-fno-exceptions"],"conditions": [["OS==\"win\"", {"msvs_settings": {"VCCLCompilerTool": {"ExceptionHandling": 1,"RuntimeLibrary": "MultiThreadedDLL","AdditionalOptions": ["/std:c++17","/EHsc"]}},"include_dirs": ["node_modules/node-addon-api","./src/**/Include"],"link_settings": {"libraries": ["./../src/**/**/**.lib"]},"defines": ["NAPI_DISABLE_CPP_EXCEPTIONS"],"cflags!": ["-fno-exceptions"],"cflags_cc!": ["-fno-exceptions"]}],["OS==\"mac\"", {"include_dirs": ["node_modules/node-addon-api"],"mac_framework_dirs": ["./../src/**/Lib"],"link_settings": {"libraries": ["-L./../src/**/Lib","**.a"]},"xcode_settings": {"DEBUG_INFORMATION_FORMAT": "dwarf-with-dsym","OTHER_CPLUSPLUSFLAGS": ["-ObjC++","-std=c++11","-stdlib=libc++","-fvisibility=hidden","-frtti"],"OTHER_LDFLAGS": ["-stdlib=libc++","-lresolv"],"DEPLOYMENT_POSTPROCESSING": "YES"},"defines": ["NAPI_DISABLE_CPP_EXCEPTIONS"],"cflags!": ["-fno-exceptions"],"cflags_cc!": ["-fno-exceptions"]}]],"sources": ["src/native_module.cpp"]}]
}

DLL 文件的运行时路径

为了确保 DLL 文件在运行时被找到,你需要将 DLL 文件放在下列路径之一:

  • 可执行文件所在的目录。
  • 在系统 PATH 环境变量中添加包含 DLL 文件的路径。
  • 将 DLL 文件复制到项目的根目录中。

编译和运行

在项目根目录下运行以下命令:

node-gyp configure node-gyp build

编译完成后,在 Node.js 中加载和运行你的本地模块:

const yourModule = require('./build/Release/native_module');

这样,应该会正确编译并链接到 DLL 文件,并且在运行时能够找到并使用该 DLL 文件。如果还有其他问题,请提供更多详细信息以便进一步排查。

http://www.lryc.cn/news/418758.html

相关文章:

  • 23种设计模式(持续更新中)
  • Linux文件系统详解
  • 大数据面试SQL(五):查询最近一笔有效订单
  • OpenCV图像滤波(8)getGaborKernel()函数的使用
  • 门店收银系统源码+同城即时零售多商户入驻商城源码
  • MaxKB:基于 LLM大语言模型的知识库问答系统实操
  • linux文件命令:更新文件时间戳的工具touch详解
  • Docker学习(6):Docker Compose部署案例
  • 4章3节:处理医学类原始数据的重要技巧,R语言中的宽长数据转换,tidyr包的使用指南
  • [Web安全架构] HTTP协议
  • mysql数据库之运算符
  • Spark轨迹大数据高效处理_计算两经纬度点间的距离_使用Haversine formula公式
  • [C++] : std::copy_n
  • centos上传工具
  • 【C++】vector习题
  • Webpack Bundle Analysis:减少包体积的技巧
  • 如何利用 ChatGPT 提高工作效率?
  • 使用 Redisson 、Redis实现分布式锁
  • Typro + PicGo 图床 + Docsify + GitHub Pages,玩转个人知识库搭建,写给小白的建站入门课
  • 多角度文字识别:应对复杂环境的智能解决方案
  • 笔记:简单介绍WPF中RenderTransform,LayoutTransform, VisualTransform区别
  • 【AI大模型】LangChain框架:示例选择器与输出解析器携手,编织NLP高效精准之网
  • 苹果电脑玩的游戏有哪些 Mac电脑怎么玩Windows游戏 苹果电脑可以装模拟器玩游戏吗
  • 【mathtype】word中如何输入4×4的矩阵,甚至阶数更多
  • ByteArrayOutputStream
  • 使用CLIP模型进行零样本图像分类的分步指南
  • Llama 3.1用了1.6万个英伟达H100 GPU,耗费......
  • 学习c语言第24天(练习)
  • 【微信小程序开发】——奶茶点餐小程序的制作(一)
  • 鱼眼相机去畸变和矫正