dll 错误

Error: A dynamic link library (DLL) initialization routine failed

依赖的dll未放入目录也会导致模块加载失败

Error: The specified module could not be found.

node.exe 未延迟加载

需要配置下面俩项

#ifdef _MSC_VER#ifndef WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN
#endif#include <windows.h>
#include <delayimp.h>
#include <string.h>static FARPROC WINAPI load_exe_hook(unsigned int event, DelayLoadInfo *info) {HMODULE m;if (event != dliNotePreLoadLibrary)return NULL;if (_stricmp(info->szDll, "NODE.EXE") != 0)return NULL;m = GetModuleHandle(NULL);return (FARPROC)m;
}decltype(__pfnDliNotifyHook2) __pfnDliNotifyHook2 = load_exe_hook;#endif

node.lib 同函数名依赖顺序问题

查看node.lib导出函数,主要有
uv
openssl
v8
zlib

dumpbin  /LINKERMEMBER node.lib >nodelib.txt

修改node.lib为最后依赖

node gyp找不到vs

2017版本后依赖powershell脚本

$ExecutionContext.SessionState.LanguageMode 看看是不是为 FullLanguage

__PSLockdownPolicy 系统环境变量 为 1,如果为4为 ConstrainedLanguage。

另外说明我设置 npm config set msvs_version 2019 无效

二进制文件坑

git 默认换行符自动转换,导致二进制文件失效

关闭转换

git config --global core.autocrlf false

依赖非n-api库比如openssl,uv

文档

cd /path-to-module/
HOME=~/.electron-gyp node-gyp rebuild --target=1.2.3 --arch=x64 --dist-url=https://electronjs.org/headers

只使用 #include <node_api.h> 保证跨版本兼容性

electron之坑addon相关推荐

  1. electron 入坑记

    最近有个想法,想写个简单的应用程序.平时在 Mac上开发,最终有可能运行在 Windows 上.看了一下,Electron 比较简单,应该可以一试. 关于安装 我机器上是有 Node 环境的,按着官方 ...

  2. error launching app electron踩坑

    { "devDependencies": { "electron": "^22.0.0" }, "main":" ...

  3. 使用napi node_使用Napi / node-addon-api和Cmake的独立于Node.js版本的C ++ Native Addon

    使用napi node This is a tutorial for c++ Node-addon-api / Napi addon using cmake.Napi makes it indepen ...

  4. Electron学习笔记(五) 通过Addon(n-api)实现可扩展接口

    Electron学习笔记(四) Electron使用的API接口 一方面electron给开发者提供了不少API, 另一方面, 也可以使用node.js的API. 但是, 有时候开发者还是想用自己实现 ...

  5. electron开发windows驱动程序

    electron开发windows驱动程序 最近公司需要开发一个windows下的白名单的软件,由于之前有过web方面的开发经验,就想pc端是不是也可以是不是也可以将web程序打包成跨平台的安装包.然 ...

  6. electron-vue打包成Mac版本

    elelctron-vue官方网址:https://simulatedgreg.gitbooks.io/electron-vue/content/cn/ 一.场景: electron-vue是实用vu ...

  7. Electron Built-in AutoUpdater 踩坑记录

    Electron Built-in AutoUpdater 因为之前做的 electron 应用开发使用的是 electron-packager 来对应用进行打包,根据官方文档的介绍,推荐使用内置的 ...

  8. 送你一份用Electron开发桌面应用的避坑指南【送3本书,含犀牛书】

    大家好,我是若川.持续组织了5个月源码共读活动,感兴趣的可以点此加我微信 ruochuan12 参与,新年第一次送3本书.抽奖规则见文末. 如今,Electron 领域发生了重大的变革,Electro ...

  9. 入坑 Electron 开发跨平台桌面应用

    ‍ 作为一个跨平台的桌面应用开发框架,Electron 的迷人之处在于,它是建立在 Chromium 和 Node.js 之上的 -- 二位分工明确,一个负责界面,一个负责背后的逻辑,典型的「你负责貌 ...

最新文章

  1. 为什么程序员都不喜欢使用 switch ,而是大量的 if……else if ?
  2. SuperMap注册流程记录
  3. spring-boot注解详解(三)
  4. java代理模式_Java代理
  5. 第5篇:Flowable快速工作流脚手架Jsite_请假实战_部署流程和发起流程
  6. Linux之ssh-agent命令
  7. 初始化对于类与接口的异同点深入解析
  8. matlab实现图像的左右翻转
  9. php游戏充值平台源码,PHP平台源码下载-PHP第四方支付平台源码pc端下载
  10. android小米手机变慢,手机越来越慢怎么破?小米手机七大加速绝招
  11. uni-app 微信小程序 getuserinfo 获取用户信息 拼音转中文
  12. 大话GraphQL新手上车
  13. php程序员拜年代码,2018程序员拜年的奇思妙想,涨姿势了
  14. <二> objectARX开发:创建和编辑基本图形对象
  15. PhotoShop CC 2017软件工具面板使用---移动工具
  16. 【JoJo的摄影笔记】百年尼康——相机之殇
  17. .podspec 依赖问题处理
  18. Oracle查看硬解析
  19. 使用过程中蓝牙驱动突然消失
  20. 关于c51如何使用左移_crol_、右移_cror_函数

热门文章

  1. Home键和返回键的区别
  2. Excel怎么快速提取出网址
  3. oidc_使用OIDC和Ionic for JHipster保护您的移动应用程序
  4. 多线程导出excel高并发_用多线程优化Excel表格数据导入校验的接口
  5. 安卓华为魅族等手机含有副账号登陆问题
  6. FastQC安装以及试用
  7. html如何引入iconfont官网图标
  8. (译)Xposed模块开发教程
  9. android+imei+为null,适合Android7.0以上(到9.0)系统,获取 关于手机--状态信息 (如:MAC,IMEI,IMSI,ICCID)...
  10. Linux系统服务简述和作用