![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
文章平均质量分 80
源之缘-OFD先行者
这个作者很懒,什么都没留下…
展开
-
化繁为简、性能提升 -- 在WPF程序中,使用Freetype库心得
本人开发的OFD阅读器最初采用了WPF自带字体方案,遇到很多坑,还有一些坑无论如何也解决不了。痛定思痛,决定采用Freetype库显示字体;经过一番折腾,终于成功了。原创 2023-01-17 15:12:38 · 1467 阅读 · 0 评论 -
c++:一个辅助类让内存泄漏现原形!
前言 对于c++而言,如何查找内存泄漏是程序员亘古不变的话题;解决之道可谓花样繁多。因为最近要用到QT写程序,摆在我面前的第一个重要问题是内存防泄漏。如果能找到一个简单而行之有效的方法,对后续开发大有裨益。久思终得诀窍,本文就详细介绍我对此问题的应对之策。(文末符完整代码)如何判断内存有泄漏 内存分配和释放对应的操作是new、delete。如何判断内存是否释放干净?其实判断起来非常简单:一个独立的模块整个生存周期内new的个数和delete的个数相等。用伪代码标示如下: int newCoun原创 2021-03-05 14:22:11 · 202 阅读 · 0 评论 -
高性能、高可用性Socket通讯库介绍 - 采用完成端口、历时多年调优!
前言本人从事编程开发十余年,因为工作关系,很早就接触socket通讯编程。常言道:人在压力下,才可能出非凡的成果。我从事的几个项目都涉及到通讯,为我研究通讯提供了平台,也带来了动力。处理socket通讯对初学者而言,具有很大的挑战性。我有个梦想:能不能开发一套系统,能很好的实现性能和易用性的统一。高性能socket采用iocp(完成端口)是唯一选择。iocp像一匹烈马,虽然性能优良,但不宜驯服。...原创 2019-03-03 16:15:37 · 277 阅读 · 0 评论 -
基于opencv 识别、定位二维码 (c++版)
基于opencv 识别、定位二维码 (c++版)前言 因工作需要,需要定位图片中的二维码;我遂查阅了相关资料,也学习了opencv开源库。通过一番努力,终于很好的实现了二维码定位。本文将讲解如何使用opencv定位二维码。定位二维码不仅仅是为了识别二维码;还可以通过二维码对图像进行水平纠正以及相邻区域定位。定位二维码,不仅需要图像处理相关知识,还需要分析二维码的特性,本文先从二...原创 2019-06-07 19:51:00 · 3487 阅读 · 0 评论 -
数字对讲系统开发札记(前端linux c 后端 c#)
前言数字化是一种趋势,特别是在“提速降费”的大环境下,这种趋势愈发明显。对讲机这种古老的系统也处在时代的变革之中,虽然手机的功能越来越强,让人怀疑对讲机是否还有存在的必要。诚然,对讲机仍然有它的市场。有时候,功能太多太强反而不是优势;对讲机的优势就是功能简单,专业性强。 笔者最近也涉足了对讲系统的开发,发现这个行业也大有可为。特别是4G、5G的出现,数字对讲系统的优势逐步显现;就像数码相机...原创 2019-10-27 19:17:14 · 498 阅读 · 0 评论 -
linux平台,对线程等待和唤醒操作的封装(涉及pthread_cond_timedwait)
前言 linux平台下,线程等待和唤醒操作是很常见的,但是平台函数不易使用;笔者对此操作做了封装,使之更易于使用。线程等待和唤醒函数比较平台提供了线程等待相关函数,这些函数之间用法也有些差异:sleep 线程等待,等待期间线程无法唤醒。pthread_cond_wait 线程等待信号触发,如果没有信号触发,无限期等待下去。pthread_cond_timedwait 线程等...原创 2019-03-14 22:26:39 · 304 阅读 · 0 评论 -
vc++开发安装程序实例
前言 市面上有很多安装程序制作软件;但是,要实现个性化安装程序,还是自己动手来写一个更为妥当。本文介绍基本的安装程序制作的步骤。安装程序可以分为几个功能点:1 资源的嵌入、释放。2 资源的解压。3 生成快捷方式。1 资源导入和释放导入 在VS资源视图,点击“”添加资源“,再选择“导入资源”,将需要安装的程序导入即可。导入的资源一般是安装程序的压缩包。释放:将资源释放到指定目录//将指定资...原创 2019-02-13 08:36:10 · 394 阅读 · 0 评论 -
AcceptEx与完成端口(IOCP)结合实例
前言 在windows平台下实现高性能网络服务器,iocp(完成端口)是唯一选择。编写网络服务器面临的问题有:1 快速接收客户端的连接。2 快速收发数据。3 快速处理数据。本文主要解决第一个问题。AcceptEx函数定义复制代码BOOL AcceptEx(SOCKET sListenSocket,SOCKET sAcceptSocket,PVOID ...原创 2019-01-27 09:45:26 · 541 阅读 · 0 评论 -
十余年软件开发经历,经验总结和程序一览(涉及Socket、WPF、vc++、CAD、图像、GIS)
前言本文主要介绍我开发的几款软件产品,大概介绍一下功能。可以让读者了解本人的开发能力,所擅长的方面。有相关开发需求可以联系作者。本人开发软件多年,从事的行业也多种多样;自然接触了不同的业务,开发了各类软件产品。工作的主线一直是windows下C/S模式软件开发; 最近也开始学习asp.net core。 软件开发和读书一样,先由厚到薄,再有薄到厚。纯粹的软件理论总是很空洞,让人无法适...原创 2018-12-17 15:59:27 · 424 阅读 · 0 评论 -
使用ffmpeg实现对h264视频解码 -- (实现了一个易于使用的c++封装库)
H264是当今流行的视频压缩格式;ffmpeg是一个开源库,实现了对h264视频文件的解压缩。为了降低使用ffmpeg的复杂性,尽量隐藏实现细节,我写了一个封装库。c#也可以很方便的使用此库。解压后的数据可以为yuv格式,也可以为rgb格式。同时可以对rgb格式视频做缩放。类H264Decode实现了所有解码功能。最后,再把此类封装成c函数,以便于与c#交互。代码下载地址 https:...原创 2018-09-18 17:36:00 · 2614 阅读 · 0 评论 -
单线程实现同时监听多个端口(windows平台c++代码)
前言 多年前开发了一套网络库,底层实现采用IOCP(完成端口)。该库已在公司多个程序中应用;经过多次修改,长时间检验,已经非常稳定高效。最近把以前的代码梳理了一下,又加进了一些新的思路。代码结构更加合理,性能也有所提升。打算将该库一些的知识点写出来,以供参考。服务端要在多个端口监听,这种场合并不多见。但作为一个完善的网络库,似乎有必要支持此功能的。传统实现方法 如果监听端口...原创 2018-09-28 08:56:00 · 1036 阅读 · 0 评论 -
采用完成端口(IOCP)实现高性能网络服务器(Windows c++版)
前言 TCP\IP已成为业界通讯标准。现在越来越多的程序需要联网。网络系统分为服务端和客户端,也就是c\s模式(client \ server)。client一般有一个或少数几个连接;server则需要处理大量连接。大部分情况下,只有服务端才特别考虑性能问题。本文主要介绍服务端处理方法,当然也可以用于客户端。 我也发表过c#版网络库。其实,我最早是从事c++开发,多年前就实现了对完成端口...原创 2018-10-06 20:48:00 · 1026 阅读 · 0 评论