
C++
文章平均质量分 70
fawdlstty
just a person
展开
-
使用 C++20 实现异步网络访问
通过 libfv 实现c++20的异步网络访问,文章介绍了C++20异步、http客户端/服务器端、websocket客户端/服务器端的实现原创 2022-06-30 14:58:27 · 1210 阅读 · 1 评论 -
libfv:基于C++20的异步HTTP库
C++20,co_await,HTTP原创 2022-04-23 20:41:58 · 4110 阅读 · 3 评论 -
C++11:多线程与锁
多线程是小型软件开发必然的趋势。C++11将多线程相关操作全部集成到标准库中了,省去了某些坑库的编译,真是大大的方便了软件开发。多线程这个库简单方便实用,下面给出简单的例子#include #include #include using namespace std;volatile int val;mutex mut;void icrement () { for (int i原创 2015-10-29 15:55:12 · 15978 阅读 · 0 评论 -
C++11:lambda表达式
这个实现的效果类似于匿名函数,不想C++98/03那样一个函数所有人都能调用,不公开不必要的接口,提高程序安全性。首先来写个最简单的lambda表达式。[]{};对,5个字符就成为了一个lambda表达式了,虽然并没卵用,不过至少跨出了一步。这个lambda表达式实际上是精简后的表达式。不加以精简的话,原表达式应该像这样:[](){};看起来挺简单的,我也这么觉得原创 2015-10-29 10:38:04 · 1061 阅读 · 0 评论 -
C++11:原子操作
在多线程开发中,为了确保数据安全性,经常需要对数据进行加锁、解锁处理。C++11中引入了原子的概念,简而言之就是访问它时它自动加锁解锁,从而使软件开发更为简便。原子可谓一个既简单又复杂的概念。简单到访问它时就跟单线程访问一块内存一样简单,复杂的地方在于它的实现涉及到各种内存模型,在优化中经常会遇到。下面给出一个简单的原子示例:#include #include #include原创 2015-10-29 15:03:49 · 5256 阅读 · 0 评论 -
C++11:变长模板的迭代与递归扩展
迭代的运行效率始终强于递归,递归始终比迭代方便开发。变长模板属于C++11中比较复杂的技术,在此简单介绍下。#include using namespace std;templateint Sum (Args... args) { return sizeof...(args);}int main (int argc, char* argv []) { cout << Su原创 2015-10-28 14:47:47 · 2126 阅读 · 0 评论 -
C++11:智能指针
智能指针,顾名思义,也就是自动回收内存的指针形式,不用程序员刻意去释放,提高软件开发效率,同时也会提高软件鲁棒性。C++11一共有4个智能指针,分别为auto_ptr、unique_ptr、shared_ptr、weak_ptr。其中auto_ptr由于存在设计问题,被标记为“已弃用”,将在未来某个C++版本中被移除。本文主要介绍其他三个指针形式。使用前首先包含 这个头文件1、unique原创 2015-10-30 10:45:25 · 2678 阅读 · 1 评论 -
C++抓包软件 纯SDK
最近写了一个抓包软件,C++写的,VS2008工程以下是软件的代码及讲解首先对于主函数,int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd){ ::hInstance = hInstance; static HWND hPrev; hP原创 2012-11-25 14:46:51 · 4599 阅读 · 4 评论 -
C++中Standard Template Library(STL)入门简要概况
STL在C++中算是相当简洁方便的东西了,但不知为何网上的教程都非常难,给新手入门造成了非常多的困扰。在此写篇新手入门教程。阅读此文需要有一定的C/C++基础,比如你要会用C语言的数组、链表等,会用C++类并且有一定了解等等,不会的还是别看了,就算你会用STL你也会发现有各种各样的bug。原创 2015-05-31 15:15:47 · 1393 阅读 · 0 评论 -
ffmpeg完全教程
FFmpeg完全教程教程实时更新中。GitHub在线阅读:https://github.com/fawdlstty/FawCourse_FFmpeg目录序言引言起因目标读者第一章 视频基础颜色空间RGB颜色空间YUV颜色空间推荐资料第二章 音频基础第三章 FFmpeg 入门配置环境容器及编码容器图像编码音频编码forma...原创 2019-03-12 00:32:44 · 1681 阅读 · 0 评论 -
Win32 服务控制
一个类,用于全方位控制系统服务。原创 2015-08-04 00:42:01 · 1152 阅读 · 0 评论 -
一个C++解析HTML的库
HTTP协议使用广泛,相应的,C++在这块需求也开始增加。一个好的解析库可以达到事半功倍的效果,在此贴出我的解析库的代码,方便新手朋友们使用。原创 2015-04-15 01:58:18 · 11962 阅读 · 1 评论 -
VC硬盘读写功能封装
硬盘读写功能主要运用在三个方面,分别是MBR操作,数据恢复以及绕过Windows安全机制。以下是私藏多年的硬盘读写功能封装的代码。为了效率起见,读写最好一次性读/写512字节,也就是一磁道为佳。原创 2015-04-15 21:00:26 · 895 阅读 · 0 评论 -
关于对C++不支持自动垃圾回收的探讨
总所周知,C++是一个不支持垃圾自动回收的编程语言,在实际编程中C++常常因为内存泄漏而引发的问题不在少数。但这真的是C++的缺点吗? 首先,我们来看看Java的自动垃圾回收。Java使用多线程技术,在后台有一垃圾回收线程,有最低的中断值,因此只能在其他线程休息时才开始执行。但它并不是在其他线程休息时就一定能执行,激发它执行的有两个条件:一是程序可分配内存达到最大值,可能是系统内存资源不足等原创 2014-01-08 16:45:18 · 994 阅读 · 0 评论 -
VC++ 网络程序 自带头文件错误
不知道大家有没这种经历,写了一个网络程序,一编译,吓,几十上百个错误,真是恐怖啊,我就遇到过N次了。恐怖的错误数量,加上全部是自带头文件的错误,错误位置也不好找,微软的BUG真是害死人啊。我最近发现了一个博客中写道:今天在帮她调试一个网络程序时,发现了一个奇怪的问题:就是假如包含头文件的顺序写成:#include #include 则程序没有任何编译错误!但假如我把转载 2012-11-29 14:25:48 · 937 阅读 · 0 评论 -
Visual C++界面美化(1)
Visual C++界面美化 之 使用Windows XP风格的对话框你是否在写程序时苦于写不出漂亮的界面而苦恼?现在我们一起来研究研究怎么才能既简单又方便的写出漂亮的界面吧 首先新建一个文本文档,复制以下代码, processorArchitecture="x86" version="5.1.0.0" type="win32"原创 2012-08-12 21:55:43 · 3983 阅读 · 0 评论 -
C++资源[【干货】国外程序员整理的 C++ 资源大全]
关于 C++ 框架、库和资源的一些汇总列表,由 fffaraz发起和维护。内容包括:标准库、Web应用框架、人工智能、数据库、图片处理、机器学习、日志、代码分析等。标准库C++ Standard Library:是一系列类和函数的集合,使用核心语言编写,也是C++ISO自身标准的一部分。Standard Template Library:标准模板库C POSIX l转载 2015-03-24 23:05:21 · 1359 阅读 · 0 评论 -
关于Windows隐藏窗口的封装
隐藏窗口在Windows用的非常广泛,比如WSAAsyncSelect等等,需要窗口回调,假如窗口恰好使用的其他库,就容易导致一个问题:消息污染,也就是需要回调的消息与界面库本身需要使用的用户消息相同,导致消息无响应或者界面库异常。解决的思路通常是创建一个隐藏窗口,设置主窗口为用户使用的窗口后,关闭主窗口同时也会自动关闭临时窗口自身,简单粗暴。原创 2015-04-13 00:45:47 · 1187 阅读 · 0 评论 -
C++/SDK界面开发总结
对于不习惯用MFC的程序员来说,写界面应该是一个头疼的事情了。调用duilib等开源界面库的不讨论,本文主要说说Windows的原生界面功能开发,作为一篇总结,帮助新手入门。1、窗口主要通过新建资源窗口实现布局,调用就通过 DialogBox 和 CreateDialog 实现界面的显示。其中 DialogBox 为模态窗口, CreateDialog 为非模态窗口,简要说说区别:模态原创 2015-04-15 22:36:09 · 2919 阅读 · 0 评论 -
浅谈多线程编程以及锁的效率测试
锁在多线程应用上非常广泛,虽然这个影响效率,但这也是在不影响计算结果上最直观的方法了。多线程编程主要有四种思路,一种是加锁,一种是无锁式编程,一种是 STM 软件事务内存,一种是使用 Erlang 等函数式编程语言。原创 2015-04-15 21:56:44 · 2765 阅读 · 0 评论 -
Windows下的一个C++多线程库
这个作为大多数人诟病的东西,调用Win32 API复杂,调用开源库pthread、boost::thread竟然没有暂停,还得加锁实现,比较麻烦。还有就是网上的代码,给出了是给出了,但竟然不说说如何使用,看得我蛋疼。于是我就封装了一个库,觉得网上的库麻烦可以试试我这个,通过临界区加锁。如果同学们遇到什么问题可以提出来。原创 2015-04-13 01:28:55 · 2288 阅读 · 0 评论 -
Windows下C++实现编码转换(SDK、MFC)
很多时候,一些小功能完全可以封装成库供调用,但很多时候网上给出的都是教程,而不是现成可使用的库。这就造成一个问题:实现一些简单的功能也得学大半天,严重影响工期。这儿我直接给出编码转换的源代码以及调用方法。供朋友们使用。原创 2015-04-12 13:43:03 · 963 阅读 · 0 评论 -
双缓存技术
偶然间在一次中国象棋游戏编写(源代码在http://download.youkuaiyun.com/detail/fawdlstty/5766599下载)中,使用到了一个技术:双缓存技术,我觉得有必要说明一下。双缓存技术主要解决闪屏问题而出现,但我最近请教一位大神时才知道(汗。。。)。在我这次游戏编写中,出现了一个BUG,就是屏幕不停的闪(我使用SetTimer定时调用InvalidateRect刷新原创 2013-07-17 00:03:29 · 1134 阅读 · 0 评论