Node插件开发(2)-不同的调用方式

本文主要介绍如何在 Node-API 中实现不同的类型的接口,如: 同步调用 基于 Napi::AsyncWorker 的异步调用,通过回调函数返回 异步调用,返回 Promise 基于 Napi::ThreadSafeFunction 的异步调用,通过回调函数返回

Electron

ABI兼容性

ABI 是 Application Binary Interface 的缩写,当我们以二进制形式(非源码形式)发布我们的动态库时,就需要关心ABI兼容(也称二进制兼容)。 对于静态库,更新静态库始终都需要该库的使用方重新编译,因此不存在ABI兼容的说法。

C++语言

Node插件开发(1)-快速入门

在使用Electron开发客户端时,如果现有Node模块所提供的功能无法满足需求,我们可以使用C++开发自定义的Node模块,也称插件(addon)。 Node.js插件的扩展名为.node,是二进制文件,其本质上是动态链接库重命名而来,在Windows平台是.dll文件,Linux/Unix平台是.so文件。

Electron

产品级的Electron项目模板

写在前面已经有了那么多的 Electron 项目模板,为什么还要再造一个?是重复造轮子吗? 我相信大多数人选择使用 Electron 开发客户端时,或多或少都看上了 Web 开发的高效率,但Web开发人员在客户端和系统编程方面的经验相对缺乏,又加上 Electron 和前端框架(如 Vue )结合起来也不是那么的轻而易举,开发人员大多会选择基于模板来快速上手搭建Electron项目。 目前,Electron 的模板项目已经有很多,比较流行的有electron-vite、electron-vite-vue等。在这些模板中,有的功能过于完善,代码太复杂,远远超过了很多 Electron 客户端项目本身的代码量,需要花很多时间来熟悉模板,不适合新手快速上手和修改,一旦出现问题也难以维护;有的模板又年久失修,使用的技术早已被淘汰,也不适合用来开发线上产品,而且这些模板都有一个通病,都是在用Web开发的思维来开发客户端。 基于上述原因,我开发了这个 Electron 项目模板,在开发过程中,我一直遵循稳定、易于维护的初衷。 项目地址:https://github.com/winsoft666/electron-vue3-boilerplate

Power By Me

🐉2024龙行龘龘

写下这一行预示着2024年的工作开始了,加油! 物来顺应,未来不迎。 当时不杂,既过不恋。

杂念

开源库spdlog使用备忘

spdlog是一个高性能C++日志库,支持仅头文件(header-only)模式使用。 官网地址: https://github.com/gabime/spdlog spdlog是线程安全的,但不是进程安全的,可以多个线程同时使用一个spdlog对象输出日志,但不能多个进程同时往一个文件写入日志。 在spdlog内部使用fmt进行字符串的格式化,因此spdlog字符串格式的方式与fmt库相同,如: 1spdlog::critical("Support for int: {0:d}; hex: {0:x}; oct: {0:o}; bin: {0:b}", 42);

开源库

C/C++不同整数类型的区别

在C/C++中涉及的整数相关的类型大致有如下几种: char、unsigned char short、unsigned short int、unsigned int long、unsigned long long long、unsigned long long int8_t、uint8_t int32_t、uint32_t int64_t、uint64_t DWORD DWORD32、DWORD64 size_t、ssize_t SIZE_T、SSIZE_T

C++语言

Windows窗口调试利器-WinSpyPlus

在Windows平台进行客户端开发时,不可避免的会遇到需要调试窗口的情况,如查看窗口句柄、窗口位置/尺寸、监听窗口消息等。虽然微软随 Visual Stuido 一同发布了 Microsoft Spy++ 工具,但该工具的功能更新缓慢,这么多年过去了基本没有什么变化,比如: 一直未提供单独的安装包。 强制以管理员权限启动,虽然以管理员权限启动可以避免很多问题(如无法监听管理员权限进程窗口的消息等),但这让用户失去了选择非管理员的权力。 不能通过标题或类名来查找窗口。 查找到的窗口不能自动定位到窗口树中。 不能过滤是否显示隐藏窗口、是否显示无标题窗口。 不能查看 Message-Only 窗口。 不能定时导出窗口树到文件中,以便做后续的对比分析。 默认启动的时32位进程,无法监听 64 位进程窗口的消息,监听失败时也未能提示用户。 未提供对窗口的快速操作指令,如显示/隐藏、最大化/最小化/还原、置顶/置底等。

Power By Me
1234523