C++学习
满衣兄
夜深人静思往事,旧梦如歌转萧条。
昨日悲欢苦未消,回首前尘却已遥。
旧地重游人不同,落花未必怨东风。
不如怜取眼前人,多少往事一笑中!
展开
-
读书笔记SendMessage需要投递到消息队列吗?
1、当一个线程向该线程所建立的窗口SendMessage消息时,它只是调用指定窗口的消息处理过程,并不将消息入队列 (图1-2) 2、当一个线程向另一个线程所建立的窗口SendMessage时,该消息要追加到接收消息线程的发送消息队列,然后发送消息的线程进入等待状态,接收消息的线程处理完该消息后,由系统唤醒发送消息的线程,这时发送线程继续进行 3、一个线程的消息队列实际上分为四种不同的消原创 2008-12-30 09:41:00 · 4933 阅读 · 2 评论 -
wParam和lParam消息
wParam和lParam消息 1 WM_PAINT消息,LOWORD(lParam)是客户区的宽,HIWORD(lParam)是客户区的高。 2 滚动条WM_VSCROLL或WM_HSCROLL消息,LOWORD(wParam)指出了鼠标对滚动条的操作。比如上、下、左、右、翻页、移动等。3 击键消息,有WM_SYSKEYDOWN、WM_SYSKEYUP、WM_KEYUP、WM_KEYDOW原创 2012-02-17 11:31:18 · 1654 阅读 · 0 评论 -
字符编码笔记:ASCII,Unicode和UTF-8
作者: 阮一峰日期: 2007年10月28日今天中午,我突然想搞清楚Unicode和UTF-8之间的关系,于是就开始在网上查资料。结果,这个问题比我想象的复杂,从午饭后一直看到晚上9点,才算初步搞清楚。下面就是我的笔记,主要用来整理自己的思路。但是,我尽量试图写得通俗易懂,希望能对其他朋友有用。毕竟,字符编码是计算机技术的基石,想要熟练使用计转载 2012-02-20 10:12:28 · 645 阅读 · 1 评论 -
如何生成Detours.lib——Detours的使用准备
Detours是微软开发的一个函数库,可用于捕获系统API。在用其进行程序开发之前,得做一些准备工作:一.下载Detours 在http://research.microsoft.com/sn/detours 可免费下载Detours,当前的最新版本是Detours Express 2.1 is available for immediate download under转载 2012-06-21 13:51:09 · 836 阅读 · 0 评论 -
win7生成生成Detours.lib以及简单使用实例
Detours是微软开发的一个函数库,可用于捕获系统API。在用其进行程序开发之前,得做一些准备工作:一.下载Detours 在http://research.microsoft.com/sn/detours 可免费下载Detours二.安装Detours 一路NEXT三.生成Detours库 在安装后的文件夹下找不到直接可以拿来用的转载 2012-06-21 13:59:12 · 1142 阅读 · 3 评论 -
向Richedit插入动态Gif的实现(关于QQ表情功能的制作)
http://www.cnblogs.com/tony-law/archive/2011/09/16/2178944.html要做一个类似QQ表情的东西,用BCB6.0来做,本来这个工具也不是熟悉,用得多还是VC吧,难!上网查了一下,因为要播放GIF文件,那个在CSDN说的几乎都是说用QQ的ImageOle来做,然后就是一大堆的链接,说哪里哪里有的,怎样引用法但是版权啊转载 2012-09-18 18:14:23 · 3839 阅读 · 0 评论 -
线程同步之Slim读/写锁
本系列意在记录Windwos线程的相关知识点,包括线程基础、线程调度、线程同步、TLS、线程池等。 Slim读/写锁SRWLock的目的和关键段相同,对一个资源进行保护,构造了一段“原子访问”的代码,不让其他线程访问它。但与关键段不同的是SRWLock允许区分想要读取资源值的线程和想要写入资源值的线程,因为仅仅读取资源是不会破坏数据的,下面是Slim读/写锁的简单用法:转载 2013-03-25 16:14:25 · 751 阅读 · 0 评论 -
Win32 路径处理相关函数
头文件:WinBase.hCreateDirectory、CreateDirectoryEx功能:创建一个新目录 GetCurrentDirectory功能: 得到当前目录,并放到缓冲区里GetDiskFreeSpace、GetDiskFreeSpaceEx功能: 获取与一个磁盘的组织有关的信息,以及了解剩余空间的容量GetDriveType功能转载 2013-07-26 14:20:11 · 918 阅读 · 1 评论 -
C++绘制箭头原理
http://kapo-cpp.blogspot.com/2008/10/drawing-arrows-with-cairo.htmlDrawing arrows with Cairo For my ggredit project I need to draw connectors between objects, connectors are simple l转载 2016-01-15 10:44:20 · 7879 阅读 · 3 评论 -
jpeg转i420水印消失问题
下图转换为i420后变成白色图片,原因:i420的颜色范围是[16,235],jpeg转换出来的是YUVJ420P([0,255]),而水印的颜色刚好是240,这样转换成i420就变成白色了http://blog.csdn.net/lanxiaziyi/article/details/74347911原创 2017-12-21 10:18:19 · 487 阅读 · 0 评论 -
COM 实例初探
<br />http://blog.csdn.net/zh291/archive/2009/04/24/4106818.aspx转载 2011-04-02 15:12:00 · 812 阅读 · 0 评论 -
MFC 分页控件
写了个MFC的分页控件,分享一下。使用方法:1、分页控件父窗体继承CPagerNotify类,并重写virtual void OnGotoPager(int nIndex)方法2、声明变量 CPagerCtrlEx m_Pager;3、在窗体的OnInitDialog()方法中写入下面代码设置图片: m_Pager.Create(CPoint(200,200),this); // 第一个参数为控件坐标 m_Pager.SetNotifyManager(this); m_Pager.SetProperty(2原创 2011-02-16 16:31:00 · 5256 阅读 · 3 评论 -
AMR文件格式分析
现在很多智能手机都支持多媒体功能,特别是音频和视频播放功能,而AMR文件格式是手机端普遍支持的音频文件格式。 AMR,全称是:Adaptive Multi-Rate,自适应多速率,是一种音频编码文件格式,专用于有效地压缩语音频率。 AMR音频主要用于移动设备的音频压缩,压缩比非常高,但是音质比较差,主要用于语音类的音频压缩,不适合对音质要求较高的音乐类音频的压缩。转载 2010-07-08 14:29:00 · 3850 阅读 · 1 评论 -
堆与栈有什么区别?
一、预备知识—程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(static)—原创 2008-11-21 08:29:00 · 1198 阅读 · 3 评论 -
八种排序算法总结
学习了这么多的排序算法,还没有做个总结,呵呵 冒泡排序冒泡排序是最慢的排序算法。在实际运用中它是效率最低的算法。它通过一趟又一趟地比较数组中的每一个元素,使较大的数据下沉,较小的数据上升。它是O(n^2)的算法。 快速排序快速排序是一个就地排序,分而治之,大规模递归的算法。从本质上来说,它是归并排序的就地版本。快速排序可以由下面四步组成。(1) 如果不多于1个数据,转载 2008-11-21 08:43:00 · 12139 阅读 · 14 评论 -
VC 6.0 工程的 ClassView 中 丢失类
ClassView 里有两个类的信息显示不出来,网上搜了下才知道这是VC 6 的老问题。解决方法是:把相应的 .h 头文件修改一下,再保存就可以了。原创 2008-11-26 11:29:00 · 907 阅读 · 0 评论 -
WM_CREATE ,WM_NCCREATE,WM_DESTROY,WM_NCDESTROY详解
通常我们理解在窗口创建时发出消息WM_CREATE,但是在这个消息之前还有一个消息是被发出的WM_NCCREATE。即:WM_NCCREATEWM_CREATE对应的,在窗口被关闭时发出消息WM_DESTROY,WM_NCDESTROY。顺序:WM_DESTROYWM_NCDESTROY这里要注意的是,在一个窗口被关闭时,如果这个窗口存在子窗口,那么会先发送子窗口的WM_DESTROY和WM_NC原创 2008-11-28 16:12:00 · 12001 阅读 · 4 评论 -
Kb 和 KB 的区别
其实说实话,很多人并不完全明白。。。计算机中的信息都是二进制的0和1来表示,其中每一个0或1被称作一个位,用小写b表示,即bit(位)大写B表示byte,即字节,一个字节=八个位,即1B=8b前面的大写K表示千的意思,即千个位(Kb)或千个字节(KB)表示文件的大小单位,文件的大小一般都使用字节(KB)来表示而表示一个网络速度则需要用单位:ps指的是/s,即每秒Kbps指的转载 2008-12-09 10:48:00 · 1794 阅读 · 2 评论 -
生产者-消费者
这个模式的详细解释请参考:http://blog.csdn.net/program_think/archive/2009/03/25/4022087.aspx 简要的说明一下这个模式:生产者-消费者问题是一个经典的进程同步问题,该问题最早由Dijkstra提出,用以演示他提出的信号量机制。在同一个进程地址空间内执行的两个线程。生产者线程生产物品,然后将物品放置在一个空缓冲区中供消费者线原创 2009-04-26 01:21:00 · 1242 阅读 · 0 评论 -
vs2005 C++ 不能调试 解决
网上找到个vc++6.0的程序,用vs2005打开之后发现有的文件不能调试,但是已经设置到调试状态了.经过细心观察,终于解决了,原来在文件的头部多了几条语句,郁闷.#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE__;#endif 把这些语句删除之后就可以原创 2009-06-04 11:47:00 · 926 阅读 · 0 评论 -
基于Linux的视频传输系统
目录1原创性声明----------------------------------------------------32 摘要----------------------------------------------------------43系统方案------------------------------------------------------43.1功能与指标转载 2009-09-01 16:40:00 · 2510 阅读 · 1 评论 -
一个内存池C++类的实现
http://blog.csdn.net/060/archive/2006/10/08/1326025.aspx原创 2009-12-16 18:35:00 · 670 阅读 · 0 评论 -
ffmpeg avframe yuv 旋转
// 顺时针旋转 ffmpeg avframe yuv rotationenum VideoRotationMode { kRotateNone = 0, kRotate90 = 90, kRotate180 = 180, kRotate270 = 270,};VideoRotationMode rotation_ = kRotateNone;...原创 2018-02-23 09:55:30 · 2701 阅读 · 3 评论