C/C++
文章平均质量分 85
吹泡泡的小猫
着迷与计算机有关的任何东西,关注软件开发团队能力提升和敏捷开发
展开
-
有保证的复制消除(Guaranteed Copy Elision)
新的 C++ 17 标准带来了很多令人兴奋的新特性,其中一个微小的,不易觉察的改进就是“有保证的复制消除(guaranteed copy elision)”。翻译 2022-06-02 10:10:42 · 1139 阅读 · 1 评论 -
ui_mon 小程序开源
我一直觉得 Windows 10 的深色模式是喜欢晚上工作的人的福音,既减少了对周围的光污染,也不刺激眼睛。但是白天用深色模式就觉得不舒服了,特别是看看周围的环境后再聚焦到电脑屏幕上的时候,一瞬间感觉不适应。于是,在深色模式和明亮模式之间转换,就成了每天的例行动作。不经意间发现并不是只有我有这样的“癖好”,同好者众矣,甚至有人开发了根据时间自动切换深色模式和明亮模式的工具 autodark。我用过后顿觉神清气爽,真乃神器也。用了一段时间后就开始手痒痒了,这么简单的工具为啥不自己做一个呢?想想自己刚从 W原创 2021-11-01 11:19:18 · 793 阅读 · 0 评论 -
使用 SOUI 开发高 DPI 桌面应用程序
基于传统技术开发的 Windows 桌面应用,在高分辨率的显示设备上表现得“惨不忍睹”。随着高分辨率显示设备的普及,所有桌面应用程序的开发人员,都需要关注自己的软件在不同的 DPI 上的表现。## 1 应用程序感知 DPI 变化在 Windows 2000 之前,大部分大部分开发人员对显示器分辨率的关注点是如何让自己的程序在低分辨率的显示器上表现正常,因为过低的分辨率会导致窗口界面显示不完整。随着垂直分辨率低于 768 的显示设备逐步被淘汰,为 Windows XP 和 Windows 7 开发.原创 2021-09-17 12:51:51 · 1500 阅读 · 1 评论 -
C++20,说说 Module 那点事儿
几天前,C++20 草案已经获得了标准委员会的全票通过,C++2a 草案讨论的几个重要内容,比如“概念(concept)”、“范围库(Ranges Library)”、“协程(Coroutines)” 和 “模块(Module)” 都加到 C++20 的标准中了,剩下的就是看编译器厂商的支持速度了。目前看 CLANG 、GCC 和 Microsoft 是比较积极的三家,语言特性和库支持的最快的是 GCC,其次是 CLANG 和 Visual C++,估计最快到年底就能看到支持全部 C++ 20 特性的编译器原创 2020-09-19 14:32:46 · 3318 阅读 · 0 评论 -
算法系列之二十四:离散傅立叶变换之音频播放与均衡器
导语 在算法系列的第二十二篇,我们介绍了离散傅立叶变换算法的实现,将时域的音频信号转换到频域进行分析,获取拨号音频的频率特征。这一篇我们将介绍一种频域均衡器的实现方法,所谓的频域均衡器,就是在频域信号的基础上对音频数据进行调整,然后再将频域信号转换成时域信号在回放设备上播放,从而达到音色调节的目的。将频域信号转换成时域信号的算法,就是离散傅立叶逆变换算法。1 离散傅立叶逆变换有从时域转换到频域原创 2015-05-04 20:06:37 · 22442 阅读 · 11 评论 -
研究了一下CSDN 私信的排序,我也是醉了
一直感觉CSDN的通知和私信总是看起来怪怪的,主页提示有私信,打开却看不到,有时候向后翻几页有能看到。今天又遇到这种情况了,于是研究可以下,刚开始还是没找到规律,知道看到“3天前”的消息排在最后一个“3年前”的消息之后,突然就明白了,于是翻到最开始,发现“11个月前”排在第一个,紧跟着是“1年前”的,然后是“2年前”的,再然后是“3年前”,再然后是“3天前”,再然后是“4天前”,直到“26天前”,紧原创 2015-05-18 23:04:21 · 8609 阅读 · 13 评论 -
关于《算法的乐趣》傅立叶变换一章的补充
一些热心读者反馈在介绍快速傅立叶变换(FFT)部分的描述和代码不一致,比如某位读者反馈前面正文介绍的是DIT-FFT,但是给出的代码实现确是DIF-FFT,让人困惑,本文准备补充一下相关的内容。DIT-FFT和DIF-FFT,一个是按时间抽取计算(Decimation-In-Time),一个是按频率抽取计算(Decimation-In-Frequency),是两种等价的FFT算法,本章内容主要集中在原创 2015-09-09 14:06:19 · 6852 阅读 · 2 评论 -
TabSiPlus 发布到 Github了
TabSiPlus 发布到 Github了代码在这里:https://github.com/inte2000/TabSiPlus.git有任何感觉不爽的地方都可以自己动手了,想要Frok这个项目的,清关注随后发布的todo列表,或者提交bug修改的patch,我审核通过了就可以成为开发成员了。原创 2015-10-31 22:46:25 · 12964 阅读 · 0 评论 -
TabSiPlus开源代码如何使用
先回答几个问题1、为什么不出64位版本的TabSiPlus?有一些朋友问我,现在很多人都用64位的操作系统了,TabSiPlus什么时候出64位的外挂版本?这里统一回答一下,目前没有出64位外挂的计划,因为没有必要。目前最新的Source Insight仍然只支持32位版本,TabSiPlus也只能在32位这个圈子里和Source Insight玩玩,就算出个64位外挂也用不了,对吧?2、为什么Ta原创 2016-04-21 21:02:16 · 8371 阅读 · 4 评论 -
TabSiPlus 终于更新了
就在几分钟前,我更新了 TabSiPlus,是的,距离最近一次更新已经过去 7 年了,小伙伴们是不是觉得有种诈尸的感觉?这次更新的内容之一是完善了从别的编辑器学来的 power mode 模式,解决了闪烁的问题。当然,最主要的是支持Source Insight 4了。Source Insight 4 刚出来的时候,我听说其已经支持标签浏览了,就觉得没有必要再继续 TabSiPlus 项目了,这...原创 2019-08-25 16:16:54 · 1367 阅读 · 0 评论 -
算法系列之二十三:离散傅立叶变换之音频播放与频谱显示
算法系列之二十三:离散傅立叶变换之音频播放与频谱显示算法系列之二十三离散傅立叶变换之音频播放与频谱显示导语什么是频谱1 频谱的原理2 频谱的选择3 频谱的计算显示动态频谱1 实现方法2 杂项说明结果展示导语 频谱和均衡器,几乎是媒体播放程序的必备物件,没有这两个功能的媒体播放程序会被认为不够专业,现在主流的播放器都具备这两个功能,foobar 2000的十八段均衡器就曾经让很原创 2015-03-29 22:12:56 · 9291 阅读 · 3 评论 -
算法系列之二十三:离散傅立叶变换之音频播放与频谱显示
频谱和均衡器,几乎是媒体播放程序的必备物件,没有这两个功能的媒体播放程序会被认为不够专业,现在主流的播放器都具备这两个功能,foobar 2000的十八段均衡器就曾经让很多人着迷。我用Winamp播放音乐(AOL已经在2013年12月20日停止了Winamp的支持),最早吸引我的原因就是播放界面上那个跳动的频谱,如图(1)所示。我一直想搞清楚这个实现原理是什么,直到我知道有离散傅立叶变换这个东西存原创 2015-03-17 21:59:39 · 16589 阅读 · 5 评论 -
算法系列之十七:日历生成算法-中国公历(格里历)(上)
日历在我们的生活中扮演着十分重要的角色,上班、上学、约会都离不开日历。每年新年开始,人们都要更换新的日历,你想知道未来一年的这么多天是怎么被确定下来的吗?为什么去年的国庆节是星期五而今年的国庆节是星期三?那就来研究一下日历算法吧。本文将介绍日历的编排规则,确定某日是星期几的计算方法,以及如何在计算机上打印某一年的年历。 要研究日历算法,首先要知道日历的编排规则,也就是历法。所谓历法,原创 2012-07-15 23:08:58 · 30453 阅读 · 34 评论 -
算法系列之十七:日历生成算法-中国公历(格里历)(下)
【接上篇】 上述计算星期的方法虽然步骤简单,但是每次都要计算两个日期的时间差,不是非常方便。如果能够有一个公式可以直接根据日期计算出对应的星期岂不是更好?幸运的是,这样的公式是存在的。此类公式的推导原理仍然是通过两个日期的时间差来计算星期,只是通过选择一个特殊的日期来简化公式的推导。这个所谓的特殊日期指的是某一年的12月31日这天刚好是星期日这种情况。选择这样的日子有两个好处,一个原创 2012-08-02 22:55:11 · 22372 阅读 · 19 评论 -
算法系列之十八:用天文方法计算二十四节气(下)
【接上篇】 经过上述计算转换得到坐标值是理论值,或者说是天体的几何位置,但是FK5系统是一个目视系统,也就是说体现的是人眼睛观察效果(光学位置),这就需要根据地球的物理环境、大气环境等信息做进一步的修正,使其和人类从地球上观察星体的观测结果一致。 首先需要进行章动修正。章动是指地球沿自转轴的指向绕黄道极缓慢旋转过程中,由于地球上物质分布不均匀性和月球及其它行星的摄动力原创 2012-09-04 23:20:27 · 27811 阅读 · 35 评论 -
算法系列之十八:用天文方法计算二十四节气(上)
二十四节气在中国古代历法中扮演着非常重要的角色,本文将介绍二十四节气的基本知识,以及如何使用VSOP82/87行星运行理论计算二十四节气发生的准确时间。 中国古代历法都是以月亮运行规律为主,严格按照朔望月长度定义月,但是由于朔望月长度和地球回归年长度无法协调,会导致农历季节和天气的实际冷暖无法对应,因此聪明的古人将月亮运行规律和太阳运行规律相结合制定了中国农历的历法规则。在这种特殊的原创 2012-08-26 22:59:31 · 54225 阅读 · 39 评论 -
算法系列之二十:计算中国农历(一)
世界各国的日历都是以天为最小单位,但是关于年和月的算法却各不相同,大致可以分为三类: 阳历--以天文年作为日历的主要周期,例如:中国公历(格里历)阴历--以天文月作为日历的主要周期,例如:伊斯兰历阴阳历--以天文年和天文月作为日历的主要周期,例如:中国农历 我国古人很早就开始关注天象,定昼夜交替为“日”,月轮盈亏为“月”,寒暑交替为“年”,在总结日月变化规律的基础上制定了兼有阴历月和阳历年性质的历原创 2013-07-01 00:18:50 · 82586 阅读 · 45 评论 -
基于文件过滤驱动的透明加密那点事儿
文件透明加密这点事儿,从2001年开始出现基于API HOOK的方式开始到现在,已经十几年了,有细心人按技术实现的方式将其细分为4代,分别是基于API HOOK的第一代技术、基于文件过滤驱动(加清缓存)的第二代技术、使用Layerfsd的双缓冲第三代技术和基于微软新一代minifilter框架的Layerfsd双缓冲第四代技术。第一代和第二代的技术划分基本上没有异议,所谓的第四代很多人并不认同,认原创 2013-08-11 23:22:16 · 19072 阅读 · 4 评论 -
算法系列之十九:用天文方法计算日月合朔(新月)
中国农历的朔望月是农历历法的基础,而朔望月又是严格以日月合朔发生的那一天作为月首,因此日月合朔时间的计算是制定农历历法的关键。本文将介绍ELP-2000/82月球运行理论,以及如何用ELP-2000/82月球运行理论计算日月合朔时间。 要计算日月合朔时间,首先要对日月合朔这一天文现象进行数学定义。朔望月是在地球上观察到的月相周期,平均长度约等于29.53059日,而恒星月(天文月)是原创 2012-11-25 22:56:41 · 35282 阅读 · 15 评论 -
递归和Windows系统的栈保护
对于使用默认栈空间大小的线程来说,调用算法系列文章第7篇提到的递归版本的IsEvenNumber()函数时,当n的值大于10000时就会导致栈溢出。在Windows系统上栈溢出会导致线程的意外终止,这种线程的意外终止通常都会导致整个软件无法正常工作。如果在递归计算的过程中能够提前预知到这种情况的堆栈溢出并终止后续的递归运算,对提高程序的安全性和健壮性都很有帮助,本话题就讨论了一种能够应用与Windows系统的检测方法。原创 2014-01-13 10:05:43 · 8087 阅读 · 0 评论 -
算法系列之十六:使用穷举法解猜结果游戏
一、 引言 穷举是解决问题的一种常用思路,当对一个问题无从下手的时候,可以考虑在问题域允许的范围内将所有可能的结果穷举出来,然后根据正确结果的判断规则对这些结果逐个验证,从而找出正确的结果。采用穷举的方法求解问题的答案比较适合计算机做,对这种体力活它们没有怨言,本文就以常见的两个猜结果的题目为例,介绍一下如何通过计算机程序解决此类问题,顺便介绍一下穷举法常见的算法结构和实现方式。原创 2012-05-27 23:01:37 · 13265 阅读 · 12 评论