Coding

共 24 篇文章

Mac 编译 Protobuffer Universal 的 dylib

Coding

最近在适配 Mac 客户端(x86_64、Arm64),项目里引用了 Protobuffer,因为整个工程最终产物就是 Universal 的,想着是编一个 Universal 的 Protobuffer 库,这样引用也比较方便。查了一圈网上没有,最后找 AI 解决的。

#mac#protobuffer

Qt 在线安装包及维护工具换源

Coding

在国内下载 Qt,如果使用在线安装包,下载经常会失败,主要是连接 Qt 官方源不够稳定。本文记录换源的具体操作方法……

#Qt

浅谈 .NET 与 Qt Timer 实现

Coding

前两天刚好跟同学提起如何实现一个 Timer 。提到了 Kafka 的时间轮和 Go 语言的四叉堆实现。所以就看了下 .NET 是如何实现 Timer 的。

#C++#C##Qt#.NET

谈谈 DLL 注入的几种方式

Coding

云游戏的键鼠捕捉用到了 Hook 这个技术,就顺便翻了一下核心编程,写下来备忘。

#Windows编程#dll

极简 OBS 编译流程

Coding

最近在搞 Nimo 主播端,主要是基于 OBS 魔改。所以就给组里同事写了一个极简的 OBS 编译流程。

#C++#OBS

DLL 导出符号的两种方式

Coding

最近恰好需要用 C++ 实现一个供 C .NET 调用的模块,用dllexport导出符号的时候出现了一点问题,明明已经看到了导出符号,但是 .NET 在调用的时候,就是找不到方法。然后用 def 文件的方式导出符号就正常,突然对这两种方式的区别产生兴趣,之前一直没有研究过,就仔细了查阅一番。

#Windows编程#dll

bcrypt 死锁探秘

Coding

产品经理反馈程序经常失去响应,从他那里创建了 dump 文件,取回来,用 windbg 分析一番。感慨颇多。

#Windows编程#Windbg#调试

【Qt源码笔记】简要说说 Qt5 中的 HighDPI 支持

Coding

想起之前在公司做的关于 HighDPI 的适配,在 Qt4 下可以说是比较繁琐,代码敲到手疼。早就听说 Qt5.6 开始支持了 HighDPI ,一直没机会看详细的代码。一直到开始做 Gal(https://github.com/ehnap/gal/releases) ,才刚好在 Qt5 下需要 H

#Qt#源码分析

【Qt源码笔记】深谈 Qt 绘制

Coding

之前写了一篇 浅谈Qt控件绘制(https://blog.ehnap.com/posts/Coding/Qt%20%E6%BA%90%E7%A0%81%E7%AC%94%E8%AE%B0/qt-source-paint-control.html) 。之所以叫浅谈是因为调用都是比较表层的调用。其实 Q

#Qt#源码分析

【Qt源码笔记】浅谈 Qt 中的控件绘制

Coding

在工作中经常要根据 UI 提供的稿子做自绘控件,而且在新项目中,我自己基于 Qt 做了一套项目自用控件库,还会涉及到换肤,所以对 Qt 的控件绘制,着重的研究了一下。看过代码之后,觉得 Qt 项目本身,确实是做 UI 发家,绘制流程清晰,可以说是做界面的范本了。将流程梳理记录一下。

#Qt#源码分析

【Qt源码笔记】 QImage 源码探究过程中的记忆碎片

Coding

在公司曾经做有关图片的一个新项目。当时仔细研究了一下QImage的源码,将一些碎片化的东西记录在了某个平台上,如今翻出来了,感觉这些内容还可以再细化细化,有时间的话,详细整理,先将以前的碎片在此记录下来。

#Qt#源码分析

Effective Qt

Coding

标题是非常的哗众取宠了。这里主要是用来记录一些使用 Qt 的小经验。之前在工作中,会有一些关于 Qt 的经验总结,加之平时自己写一些小东西也有使用 Qt ,所以使用起来会有一些经验教训,聚集起来,姑且叫做 Effective Qt 了。随时想到会随时更新内容。(注:这里会有一些代码设计的思路,不存在

#Qt

说说 Windows 编程中 /MT、/MD 的区别

Coding

Windows 编程中无法绕开的编译开关 /MT、/MD 其实还有一个 /LD,不过后者很少见。之前对这些一直没有一个清晰的概念,所以就查阅了相关资料。算是对这块有了一个粗浅的认识。 其实最直观的资料还属 MSDN(https://docs.microsoft.com/en-us/cpp/buil

#Runtime#Windows编程

浅谈 Windows 编程中的 Thread

Coding

线程对于 Windows 编程人员来说,并不陌生,但是一直以来,我对它的了解也只是基本的使用层面。对于很多细节,也并不是很了解。这作为一个 Windows 客户端开发人员,可以说是非常尴尬了。所以,抽了一点时间,仔细梳理了一下线程相关的内容。顺便记录下来。

#Thread#Windows编程

浅谈 Windows 编程中的堆

Coding

提起堆,大部分人都不陌生,但是其实很多人也不见得就很了解。我见过的大部分人,对堆的理解其实还停留在,全局的一种内存,速度没有栈快,不会自动销毁,需要开发人员自己管理。这其实不怪 Windows,怪就怪面试人员水平参差不齐,五百年了,问堆还是,堆栈究竟有什么区别。然后在中国这个应试教育横行的地方,也必

#Heap#Windows编程

Qt5 中的 Json 模块与 JsonCpp 的对比

Coding

工作中有幸做过关于 Qt5 Json 模块向 Qt4 的移植。做过有关 Qt Json 与 JsonCpp 的对比,并做过相关的兼容工作。所以着重研究了一下有关 Json 解析器的相关内容。注:大家常说的 QJson 其实并不是 Qt 中的模块,而是在 Qt4 没有 Json 模块的年代,一个非官方

#Qt#源码分析

【Qt源码笔记】关于 QTimer 在 Windows 下实现的杂谈

Coding

关于 QTimer 的具体实现,翻看源码源于一次面试经历。被问到 QTimer 的问题,我随口说了一句:Windows 平台下是用 Windows API 实现的,然后便引起了怀疑,不过我据理力争,便也作罢。所以回来之后,就又确认了一下。

#Qt#源码分析

【Qt源码笔记】万般皆是int main

Coding

经常写 Qt 的程序,就会发现,不管是写控制台程序还是带窗体的应用程序,在 Qt 中的入口都是int main()。但实际上抛开其他平台不说,就是在 Windows 平台上,二者的入口就是有区别的。之前只是略知一点,今天翻看了一下代码,算是了解了一下。

#Qt#源码分析

Windows 编程中的字符编码

Coding

经常在写代码的时候需要处理宽字符,ASCII 字符,在代码中看到 wchar、char 等等。一般都是处理一个方法的时候发现需要的是某字符串,然后这边有什么字符串,之后查一个转换方法。还有对于 Unicode 、ANSI 这些不太分得清,所以花了一点时间看了一看。做个小结。

#字符编码#Windows编程

面试问题整理

Coding

最近一段时间整理了一些我遇到的面试题,各个方面都有,写在这里,做个记录。大厂偏好算法和数据结构,小厂偏好项目经验。这算是一个比较鲜明的特点了。

#随笔

AVL树(自平衡二叉树)

Coding

特点 二叉树 同节点左右子树高度差不超过1

#数据结构

【Qt源码笔记】Qt事件与Windows消息循环的联系

Coding

上次研究了一下Qt是如何对Win32初始化程序进行包装的。这次研究下Qt的事件循环和Windows消息循环之间的联系。 上次说到QApplication注册了一个qt_internal_proc方法来处理消息循环,但是在这个方法中并没有看到一些关于Qt事件的蛛丝马迹。例如鼠标事件、键盘事件等。

#Qt#源码分析

【Qt源码笔记】从WinMain说起

Coding

Qt在各个平台下都是对平台API进行了一些包装。Windows下是对Win32API的封装。如果是Windows平台的GUI Application就一定是从WinMain开始。 不难发现WinMain就在qtmain_win.cpp中。

#Qt#源码分析

编译Qt

Coding

参考: Building-Qt5-from-Git Windows 下自己准备自己想要的编译器。编译自己想要的 Qt 版本 最近 5.6 出来了,有好多新的变化,第一时间准备尝鲜。 我自己的是 MSVC2015 Qt5.6

#C++#Qt