一、如何启动项目
- 解压 win-unpacked.zip
- 双击 win-unpacked/目录下的 2-electron-video.exe
二、如何替换 dll 文件
win-unpacked/app.asar.unpacked/sdk/demodll.dll
我自行编译的 dll 文件win-unpacked/app.asar.unpacked/sdk/cygHCTP.dll
c++同学给的
目前测试的 dll 文件 放在了 win-unpacked/app.asar.unpacked/sdk/ 目录下
- 其中
demodll.dll
或者cygHCTP.dll
替换成你们自己的就可以 - 替换后先关闭测试窗口、重新
双击 win-unpacked/目录下的 2-electron-video.exe
就可以看到效果了
三、demodll.dll 生成过程
- 打开 vs 2022
- 新建
- 项目
- 动态链接库(DLL) - 下一步
- 项目名称 demodll - 创建
- 修改 dllmain.cpp 文件,内容如下 - 保存
dllmain.cpp
cpp
#include "pch.h"
#include <iostream>
extern "C" __declspec(dllexport) int add(int a, int b)
{
return a + b;
}
BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
- 顶部菜单 “生成” - “生成解决方案”
bash
已启动生成...
1>------ 已启动生成: 项目: demodll2, 配置: Debug x64 ------
1>pch.cpp
1>dllmain.cpp
1>demodll2.vcxproj -> D:\Desktop\mydll\demodll2\x64\Debug\demodll2.dll
========== 生成: 1 成功,0 失败,0 最新,0 已跳过 ==========
========= 生成 开始于 11:47 AM,并花费了 02.790 秒 ==========
D:\Desktop\mydll\demodll2\x64\Debug\demodll2.dll
就是我们的目标文件
四、启动后的效果
五、日志目录
powershell
cd ~\AppData\Roaming\2-electron-video\logs
start .
六、PPCS_API.dll 初始化
导入 ffi 和 ref 模块:
javascript
const ffi = require('ffi-napi');
const ref = require('ref-napi');
定义返回值类型:
javascript
const ulonglong = ref.types.ulonglong;
定义返回值的缓冲区:
javascript
const retPtr = ref.alloc(ulonglong);
调用"hctpInit"方法,并将返回值缓冲区作为参数传递:
javascript
const lib = ffi.Library('your_library_name', {
hctpInit: ['ulonglong', ['string']]
});
const result = lib.hctpInit('your_string_arg', retPtr);
获取返回值:
javascript
const returnedValue = ref.get(retPtr);
现在,您可以将返回的 ulonglong 类型的值保存在一个变量中(例如,returnedValue),并将其用作后续"hctpMediaDownload"方法的参数之一。