当从源代码构建电子时,如何为本机c ++插件生成node.lib(就像node-gyp中使用的库)

问题描述 投票:0回答:2

我已经从源代码构建了电子4.1.4,但我不知道如何为本机c ++插件生成node.lib。我使用来自https://atom.io/download/electron的node.lib构建了我的c++插件,但是我从源代码构建的电子无法加载它。

我已经从源代码构建了电子4.1.4

没有代码

生成node.lib的步骤(就像从https://atom.io/download/electron下载)

electron native
2个回答
0
投票

https://github.com/electron/electron/issues/18278

只是将 Electron.lib 重命名为 Node.lib


0
投票

我最近在 win32 上还有另一种方法,无需从源代码重建 Electron。

首先,按照本指南从

electron.lib
(或
electron.exe
)生成
node.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;
}
© www.soinside.com 2019 - 2024. All rights reserved.