我已经从源代码构建了电子4.1.4,但我不知道如何为本机c ++插件生成node.lib。我使用来自https://atom.io/download/electron的node.lib构建了我的c++插件,但是我从源代码构建的电子无法加载它。
我已经从源代码构建了电子4.1.4
没有代码
生成node.lib的步骤(就像从https://atom.io/download/electron下载)
https://github.com/electron/electron/issues/18278
只是将 Electron.lib 重命名为 Node.lib
我最近在 win32 上还有另一种方法,无需从源代码重建 Electron。
首先,按照本指南从
electron.lib
(或 electron.exe
)生成 node.exe
.def
文件中,您应该将库定义为 electron.exe
; electron.def
LIBRARY electron.exe
EXPORTS
; napi_... (export functions list)
然后将您的插件与生成的
electron.lib
链接。
快速测试您的插件:
npx electron -r ./addon-name.node
如果您正在打包应用程序,则必须实现带有过滤功能的 win_delay_load_hook
electron.exe
。
static FARPROC WINAPI load_exe_hook(unsigned int event, DelayLoadInfo* info) {
HMODULE m;
if (event != dliNotePreLoadLibrary)
return NULL;
if (_stricmp(info->szDll, "electron.exe") != 0)
return NULL;
m = GetModuleHandle(NULL);
return (FARPROC)m;
}