Redis 是高性能内存键值数据库,支持字符串、哈希等多结构,兼具缓存与持久化能力,广泛用于实时数据处理场景。本文主要介绍 Redis 常见的异常及处理方案。

阅读全文 »

本文使用的工具都是 Windows SDK 自带的,可以采用单独安装 Windows SDK的方式,也可以通过安装 Visual Studio 来附带安装 Windows SDK。

1
2
3
4
5
6
# 在弹出界面设置密码123456
makecert.exe -sv test.pvk -r -n "CN=test.com" test.cer

cert2spc.exe test.cer test.spc

pvk2pfx.exe -pvk test.pvk -pi 123456 -spc test.spc -pfx test.pfx -f

使用 SignTool 工具对 EXE 文件签名:

1
signtool.exe sign /f test.pfx /p 123456 Setup.exe

所谓音频环回录制就是录制扬声器播放的声音。播放到扬声器的声音已经过混合,Windows 提供了 WASAPI 来获取这种混合的音频信号。

本文将录制到原始音频样本数据写入到文件,可以使用Audacity导入原始数据试听。

阅读全文 »

选择一项事业(或者找一条能够载渡精神的船)的时候,应该想起兵书上的一句话:知己知彼,百战不殆。没有谁是为了失败而工作的,因为注定的失败不能引导出一个如醉如痴的过程。

所谓知己,就是要知道自己的兴趣何在?自己的禀赋何在?如果你喜欢文学,可你偏偏不肯舍弃一个学化学的机会,且不说没有兴趣你的化学很难学好,即便你小有成就那也是你的悲剧。如果你是一个数学天才,比如说是一个潜在的陈景润,可你对此昏然不知偏要去当一个写小说的,结果多半不妙。

所谓知彼,就是得知道客观条件允许你干什么。如果你热爱起足球的时候已经 40 多岁,你最好安心作一个球迷,千万别学马拉多纳了。如果你羡慕三毛,你也有文学才能,但是你的双腿一动都不能动,你就不要向往撒哈拉,你不如写一写自己心中的沙漠。

我一贯相信,每个人都有自己的所长,倘能扬长避短谁都能有所作为;相反如果弃长取短,天才也能成为蠢才,不信让陈景润与托尔斯泰调换一下工作试试看。对事业的选择,要根据“知己知彼”的原则,可别为“热门”或时髦所左右。

阅读全文 »

本文介绍如何根据进程 ID 获取进程命令行参数,使用 Windows NTDLL 提供的未公开 API 实现。

由于需要使用到 Windows 应用层未公开的 API,而且这些 API 在 Windows 头文件中未提供函数定义,因此我们需要使用 GetProcessAddress 动态地从 ntdll.dll 中获取函数地址。

动态获取函数地址本不是一件困难的事情,但是当涉及调用函数比较多时,这个操作就显得比较繁琐了,我们可以直接使用下面的库来简化上述操作。
https://github.com/winsoft666/ntdll

阅读全文 »

rpclib是一个 C++的 RPC 库,基于 MessagePack 进行二进制序列化和反序列化,底层使用 TCP 进行进程间通信。其功能与 Facebook 的 Thrift、Google 的 Protocol Buffers 相似,但 rpclib 更加轻量级,不需要依赖 Boost,而且不用声明接口描述文件。

阅读全文 »

安装 Visual Studio Code

Visual Studio Code(简称 VSCode)是由微软开发的一个开源的、跨平台的代码编辑器。Visual Studio Code 的优势就是有丰富的扩展包,大多数功能都可以通过安装扩展包的方式来实现。

打开 Visual Studio Code 官网https://code.visualstudio.com/,根据系统选择对应的版本进行安装:

阅读全文 »

本文不是一个完整的正则表达式的教程,仅适用于已掌握正则表达式语法,需要进行规则速查的开发人员。

阅读全文 »

本文记录 Git 使用中的一些零碎知识,方便自己查阅,亦希望成人之美。

阅读全文 »

桌面客户端也叫 PC 客户端,桌面操作系统(如Windows、MacOS、Ubuntu 等系统)上的软件都可以称为桌面客户端软件,客户端软件的开发有多种技术选型方式,而且每种方式各有优劣。

采用不同的方式通常会导致在开发周期、技术人员招聘、软件性能、安装包体积等方面有比较大的差别。本文结合我这些年的客户端开发经验,聊一聊在客户端开发方面的各种技术选型以及他们的优劣。

阅读全文 »
0%