C/C++
文章平均质量分 59
ljfth
这个作者很懒,什么都没留下…
展开
-
头文件和源文件的关系
一、源文件如何根据#include来关联头文件1,系统自带的头文件用尖括号括起来,这样编译器会在系统文件目录下查找。 #include 2,用户自定义的文件用双引号括起来,编译器首先会在用户目录下查找,然后在到C++安装目录(比如VC中可以指定和修改库文件查找路径,Unix和Linux中可以通过环境变量来设定)中查找,最后在系统文件中查找。 #include “xxx.h” 二、头文件如何来原创 2009-03-07 15:17:00 · 1277 阅读 · 0 评论 -
加了 WS_THICKFRAME 风格,如何能无边框?
如果想无边框,直接去掉WS_THICKFRAME不就行了嘛。那为什么还要有WS_THICKFRAME风格,再费劲去掉边框了?没有WS_THICKFRAME会带来很多问题:1.没有WS_THICKFRAME,有WS_SYSMENU,就没办法通过相应WM_NCHITTEST,去处理窗口的缩放。2.没有WS_THICKFRAME,也没有WS_SYSMEN,在xp系统下任务栏就没有原创 2011-11-10 13:23:27 · 14230 阅读 · 3 评论 -
WM_GETMINMAXINFO 设置窗口最大最小尺寸(无边框窗口不遮挡任务栏)
以wtl为例,响应WM_GETMINMAXINFO消息: LRESULT OnGetMinMaxInfo( UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, BOOL& /*bHandled*/ ){MINMAXINFO * p = (MINMAXINFO * )lParam;p->ptMinTrackSize.x原创 2011-11-10 13:41:43 · 5339 阅读 · 0 评论 -
线程安全”是一个什么概念?
以前常听高手告诫MFC对象不要跨线程使用,因为MFC不是线程安全的。比如CWnd对象不要跨线程使用,可以用窗口句柄(HWND)代替。CSocket/CAsyncSocket对象不要跨线程使用,用SOCKET句柄代替.那么到底什么是线程安全呢?什么时候需要考虑?如果程序涉及到多线程原创 2011-07-18 16:10:49 · 867 阅读 · 0 评论 -
活动窗口(Active),焦点窗口(Focus),IsDialogMessage,
任何一个时候,我们的Windows桌面上总有一个最前台的窗口,其实说简单的,就是标题栏变成深蓝色的那个窗口,仅此一个,这个窗口就是前景窗口(Foreground Window),其他窗口就是后台窗口(Background Window)。那创建前景窗口的线程就是前景线程(Fore原创 2011-07-12 22:29:25 · 5230 阅读 · 0 评论 -
Windows 消息优先级
<br />也许题目有些夸张,但是Windows消息方面确实存在一些不去探究就摸不着头脑的事情,这种问题不是明显错误,不会抛出异常,但却是最棘手的问题,给调试带来很大麻烦,所以我将实际遇到的问题整理如下,以供参考。<br /> <br />一、Windows 消息以及消息处理算法<br />Windows以消息驱动的方式,使得线程能够通过处理消息来响应外界。Windows 为每个需要接受消息和处理消息的线程建立消息队列(包括发送消息队列,登记消息队列,输入消息队列,响应消息队列),其中发送消息队列保存其他线转载 2011-05-06 10:43:00 · 8330 阅读 · 0 评论 -
__stdcall,__cdecl,_cdecl,_stdcall,。__fastcall,_fastcall 区别简
1.今天写线程函数时,发现msdn中对ThreadProc的定义有要求:DWORD WINAPI ThreadProc(LPVOID lpParameter);不解为什么要用WINAPI宏定义,查了后发现下面的定义。于是乎需要区别__stdcall和__cdecl两者的区别; #define CALLBACK __stdcall#define WINAPI __stdcall#define WINAPIV __cdecl#define APIENTRY WINAPI#define APIPRIVATE __转载 2011-03-22 16:06:00 · 519 阅读 · 0 评论 -
【开源工程】MediaInfo
<br />MediaInfo <br /> <br />一、简介<br />MediaInfo 用来分析视频和音频文件的编码和内容信息。<br />MediaInfo可以获得多媒体文件的哪些信息?<br />内容信息:标题,作者,专辑名,音轨号,日期,总时间……<br />视频:编码器,长宽比,帧频率,比特率…… <br />音频:编码器,采样率,声道数,语言,比特率…… <br />文本:语言和字幕 <br />段落:段落数,列表 <br /> <br />MediaInfo支持哪些文件格式?<转载 2010-10-28 21:13:00 · 846 阅读 · 0 评论 -
有关CComPtr&CComQIPtr,CComBSTR,CComVariant,CAutoPtr的设计思想的分析
<br />这三种类型的封装类都对其封装类型进行包裹,尤其是提供分配内存以及释放内存。在设计思想上不同的是:<br />CComPtr<T>&CComQIPtr<T>:用于维护COM的接口,<br />l 对于构造函数和赋值等于,<br />n 无论传入T还是CComPtr<T>,都直接或间接AddRef(相当郁复制)并不是owner相应的T。也就是说通过构造函数或赋值等于传入的T还是由外部来owner释放。<br />不addRef直接owner T的办法只有两个:<br />l 使用Attach,原创 2010-10-28 15:03:00 · 903 阅读 · 0 评论 -
软件开发经验总结——读源代码的艺术
读取源代码是每一个开发人员成长的必经之路,一份优秀的源代码,是作者多年开发技术的心血结晶,研究一份优秀的源代码,总是能够让你的技术得到一定程度的提升。然后,读别人的源代码并不是拿着代码在那里瞎看,而是要充分了解作者的编程思路,了解代码的优点和缺点,在了解作者思路的基础上,自己尝试写出比该代码更优秀的代码,才能达到“通透”的境界。如果在读取源代码时能够遵守以下准则,那么效果就会更好。准则1转载 2009-09-13 19:02:00 · 551 阅读 · 0 评论 -
软件开发经验总结——解读高速读书之秘
计算机知识更新得飞快,作为一个软件开发人员,必须即时更新自己的知识结构,否则,将会被社会所淘汰,记得以前读书的时候,只会写HTML网页的开发人员都可以很轻松得拿10K以上的工资,时过境迁,如今,如果一个开发人员只会编写HTML,那么他可能连工作都找不到。在知识更新换代如此之快的今天,如何高速学习成为了我们软件开发人员一项艰巨的任务,然而苦中也有甜,当你看过几百本技术类书籍后,你会深刻感受到自己的进转载 2009-09-13 19:01:00 · 585 阅读 · 0 评论 -
软件开发经验总结——客观地认识程序员心中的恐惧
经常听到身边有很多搞开发的朋友说,“哎,程序员不好混,等到30岁后就要没有什么公司要了”、“计算机技术更新得太快了,过了30岁如果我的学习能力下降了,就跟不上了,到时候该怎么办”、“我的那些同学刚出来做其他行业每个月拿1000元,现在都每个月上万了,房子和车子都有了”、“如果有机会,我一定要转行”,”做技术在外国可以,但在中国行不通,国情不允许“,整天发这些牢骚的情况在我身边大有人在,尤其是一些入转载 2009-09-13 18:58:00 · 761 阅读 · 0 评论 -
超强TS流TSPlayer网络播放器,能解复用mpeg2、h.264码流、可播放256套节目
TSPlayer是一款DVB-TS流多画面播放器。1. 默认全屏,默认连接UDP多播网络。2. F5整个画面全屏,鼠标右键整个画面全屏,双击单个画面全屏。3. 可动态改变画面个数。4. 两种全屏都可ESC键退出。5. 可接收UDP多播(MultiCast)和单播(UniCast)网络,也可打开本地文件。6. 支持 "mpeg2和H.264" DVB-TS流。7. 当接收UDP多播(MultiCas原创 2009-08-12 20:43:00 · 17565 阅读 · 5 评论 -
VC++6.0编译器详解
大家可能一直在用VC开发软件,但是对于这个编译器却未必很了解。原因是多方面的。大多数情况下,我们只停留在“使用”它,而不会想去“了解”它。因为它只是一个工具,我们宁可把更多的精力放在C++语言和软件设计上。我们习惯于这样一种“模式”:建立一个项目,然后写代码,然后编译,反反复复调试。但是,所谓:“公欲善其事,必先利其器”。如果我们精于VC开发环境,我们是不是能够做得更加游刃有余呢? 闲话少原创 2009-03-07 15:15:00 · 1170 阅读 · 0 评论 -
C和C++混合编程(__cplusplus 与 external "c" 的使用)
第一种理解比如说你用C++开发了一个DLL库,为了能够让C语言也能够调用你的DLL输出(Export)的函数,你需要用extern "C"来强制编译器不要修改你的函数名。通常,在C语言的头文件中经常可以看到类似下面这种形式的代码: #ifdef __cplusplus extern "C" { #endif /**** some declaration or so ****转载 2009-03-07 14:45:00 · 8887 阅读 · 2 评论 -
C++编译器及IDE(Dev_C++、WxDev_C++、VC等)
Dev-C++本软件就不用说了,这是pfan论坛上的首选IDE环境;他默认安装minGW作为编译器——就是windows化了的GCC编译器。版本应该是3.4;由于其编辑器使用简单,而内核gcc3.4对c99和c++2003的支持度都比较高,所以,这个软件比较适合标准C/C++初学者!除了支持外部库,Dev-C++还支持自己的开发包,你可以从升级“包”这个功能上获得许多有用的东西;你可以在http:原创 2009-03-07 15:16:00 · 3809 阅读 · 0 评论 -
CFile转FILE*
我们每个人编写程序时,都会或多或少的被一些小问题所困扰。这些问题有时就像是谜语,答案也许很简单,但解决的过程却像猜谜一样花时间。我的笨办法是日积月累,下面我介绍CFile如何转FILE*,从问题场景,方法和具体代码等方面写起,希望对大家能有所帮助。 比如原先有一个程序,其中的文件操作都是用CFile完成的,假定就操作一个文件a.dat,初始化时就用CFile::Open打开了文件,原创 2009-03-09 22:49:00 · 2969 阅读 · 0 评论 -
WM_NCHITTEST (处理无边框窗口的缩放)
MSDN对它的解释是:The WM_NCHITTEST message is sent to a window when the cursor moves, or when a mouse button is pressed or released. If the mouse is not captured, the message is sent to the window bene原创 2011-07-13 15:27:30 · 2364 阅读 · 0 评论