C/C++
happy hell
主要从事网络通讯方面研究,目前领导的项目有jabber IM、企业版IM、视频会议、视频监控、GPS车载、p2p技术、IPTV等等项目。
目前从事android平台整体系统架构,以及自主SDK研发,关注meego
展开
-
替代sleep 方法
在进行Windows编程时,经常需要使用Sleep()这个Windows标准API函数来实现延时等待。但该线程的最大问题在于,调用了Sleep后,整个线程全部被挂起。也不能处理Windows消息。TfxSleep解决该问题。实现卡住等待超时的同时,可以处理Windows消息。 // 延时 ?时间, 期间能处理Windows事件VOID TfxSleep(ULONG ulMil原创 2007-11-03 16:55:00 · 3023 阅读 · 0 评论 -
基于MFC控件STATIC显示图片数据
基于MFC控件STATIC显示图片数据 1. 在 OnInitDialog 中加入 GetDlgItem(IDC_MY_PIC)->ModifyStyle ( SS_TYPEMASK, SS_OWNERDRAW ); 2. 在butto 按钮中加入以下,可以显示多中类型的图片资源void CDlgpicDlg::原创 2008-05-09 14:58:00 · 8032 阅读 · 6 评论 -
TinyXML中文文档
译注:本文是TinyXML 2.5.2版本Document的中文文档,经原作者Lee Thomason同意由hansen翻译,如有误译或者错漏,欢迎指正。版权:版权归原作者所有,翻译文档版权归本人hansen所有,转载请注明出处。原文:http://www.grinninglizard.com/tinyxmldocs/index.htmlTinyXml 文档2.5.2TinyXML TinyXML转载 2008-08-07 08:58:00 · 1560 阅读 · 0 评论 -
托盘左键单击和双击问题
最近项目中有个托盘左键单击、双击事件,但发现双击的时候总是先弹出单击的菜单(这个是正常的,因为双击必定先触发单击事件嘛),那如何避免这样的情况呢....方案1 : 用线程处理单击事件,延时判断,如果是双击,则不显示单击的菜单首先在 对话框中添加 BOOL m_bLButtonFlag; // 0 表示单击 1 表示双击然后再 LRESULT XXX::DefWindowPr原创 2008-06-02 11:19:00 · 1310 阅读 · 1 评论 -
VC6中使用STLPort4.6.2
********************************************如果和PlatformSDK 一起使用的话要记的在STLport目录中 /stlport/stl_user_config.h 文件中把这一句打开 # define _STLP_NEW_PLATFORM_SDK 1否则在编译时会有如下错误second C linkage of overloa原创 2009-02-02 17:33:00 · 1037 阅读 · 0 评论 -
operator typename() const 用作类型转换
operator typename() const 用作类型转换C++可以默认转换数据类型也可以强制进行类型转换重载转换操作符就是为了方便对类产生的对象进行转换操作,它必须是成员函数实现类的类型转换只能应用于一个转换,不能连续进行转换操作。 template class Base { public: Base(T&); //类型转换构造函数 operat原创 2009-04-02 16:02:00 · 2625 阅读 · 0 评论 -
operator 用法
C++中的operator,有两种用法,一种是operator overloading(操作符重载),一种是operator casting(操作隐式转换)。下面分别进行介绍: 1.operator overloadingC++可能通过operator 重载操作符,格式如下:类型T operator 操作符 (),如比重载+,如下所示template class A{publi原创 2009-04-02 16:08:00 · 4038 阅读 · 0 评论 -
closures
http://en.wikipedia.org/wiki/Blocks_(C_language_extension) Blocks are a nonstandard extension added by Apple Inc. to the C, C++, and Objective-C programming languages that uses a lambda expressio原创 2009-11-09 10:15:00 · 652 阅读 · 0 评论 -
内存检测工具VC内存泄漏检测工具_Visual Leak Detector(转)
初识Visual Leak Detector 灵活自由是C/C 语言的一大特色,而这也为C/C 程序员出了一个难题。当程序越来越复杂时,内存的管理也会变得越加复杂,稍有不慎就会出现内存问题。内存泄漏是最常见的内存问题之一。内存泄漏如果不是很 严重,在短时间内对程序不会有太大的影响,这也使得内存泄漏问题有很强的隐蔽性,不容易被发现。 然而不管内存泄漏多么轻微,当程序长时间运行时,其破转载 2010-03-25 09:48:00 · 1402 阅读 · 0 评论 -
如何让子对话框和夫对话框窗口相互切换
大家在开发过程中,经常会用到弹出对话框,但这个时候,弹出的对话框总是在夫对话框之前,不能操作夫对话框,如果仅仅是需要对夫对话框进行操作,可以使用 非模态对话框 去创建弹出对话框,但是,这个时候,如果切换到夫对话框,弹出对话框还是在夫对话框之前,如何才可以让这两个对话框相互自由切换呢?DoModal(); 是模态对话框,而你所说的是非模态对话框 具体做法是: newdialog原创 2008-04-29 14:27:00 · 2393 阅读 · 0 评论 -
kernel_mktime()函数分析
/***********时间结构定义********************************/struct tm { int tm_sec; /*秒,0-59*/ int tm_min; /*分,0-59*/ int tm_hour;/*时,0-23*/ int tm_mday;/*天数,1-31*/ int tm_mon; /*月数,0-11*/ int tm_year;/*自1原创 2008-01-17 12:57:00 · 1773 阅读 · 2 评论 -
VC6使用#pragma warning的一点经验
在VC6.0中定义类的头文件中起始处有如下#include语句#include #include class CMyClass { …}在使用Level 4编译时,报告C4100,C4511,C4512,C4663,C4245,C4018几种Warning 2. 修改为如下:#pragma warning( push )原创 2008-01-17 13:45:00 · 1024 阅读 · 0 评论 -
字符串中判断数字(值),包含小数点,正负号
BOOL CItemJudgeStd::IsDigital(CString strItem){ for(int i= 0; i { // check"+"、"-"正负号 if (i== 0 && (strItem.GetAt(i)== 0x2B || strItem.GetAt(i)== 0x2D)) continue; // check char if ( !isdigit(st原创 2007-11-03 16:42:00 · 3577 阅读 · 0 评论 -
一个小型的溢出实验
来源:〓中国黑客联盟〓总站论坛 作者:玄风残翼实验环境:Microsoft Visual C++ 6.0,Windows XP SP2,补丁至最新。OllyDbg1.10。实验目标:构造存在溢出漏洞的代码,并构造特殊代码以利用这个漏洞。漏洞代码:为方便调试,我们用的是VC6.0的Win32 Console Application工程,切换到Release模式(Build->Set Active C转载 2008-01-27 16:53:00 · 952 阅读 · 0 评论 -
16进制转10进制
CString strInput; strInput="E01F3D0D0A"; // 16进制的内容 int strlen=strInput.GetLength(); int len2=strlen/2; char chTest[634]; char *bufIn; bufIn=new char[strlen]; memcpy(bufIn,(void *)(L原创 2008-01-28 10:48:00 · 1358 阅读 · 2 评论 -
string浅拷贝及其在dll中运用的注意事项
1.一个原则:某个模块中分配的空间就应该由它来释放!比如说在dll中分配的空间就应由这个dll来释放,而不应该有main来释放,因为dll中用来分配空间的环境可能和main中用来分配的环境不一样。关于这一点window核心编程中的dll里面进行了讲解,但是说真的我还是不明白为什么会这样。但是要记住这个原则!2.mian 中的如下语句: string str1("l10"); string转载 2008-01-27 16:33:00 · 813 阅读 · 0 评论 -
VS2005下编译boost库
因为最近的一个程序中要用到boost的库,所以在boost的网站上下载了最新的1.34版的源代码。其实以前在VC6的时候是用过的,但这次在VS2005下安装还是费了不少的工夫的,主要是很多环境变量没有正确的设置的原因。最后终于找到了一个非常方便的方法,共享出来以造福有着同样烦恼的XDJM们。 1. 启动VS2005,在Tool菜单中选择“Visual Studio 2005 Command原创 2008-01-27 16:49:00 · 1092 阅读 · 0 评论 -
MultiByteToWideChar和WideCharToMultiByte用法详解
原文: http://blog.csdn.net/li_007/archive/2007/06/06/1640211.aspx1.使用方法详解 在本文开始之处,先简要地说一下何为短字符和宽字符. 所谓的短字符,就是用8bit来表示的字符,典型的应用是ASCII码.而宽字符,顾名思义,就是用16bit表示的字符,典型的有UNICODE.关于windows下的ASCII和UNICODE的更多信转载 2007-12-20 10:02:00 · 688 阅读 · 0 评论 -
CString源码
CString使用的是引用技术,可以共享数据(这个大家都知道),另外空的CStirng是指向一个固定的地址的(_afxInitData).另外CStirng是有长度限制的2147483647(无符号int 的最大值).数据格式struct CStringData{ long nRefs; //引用记数 int nDataLength; //字符使用长度 int nAllocLength; //分配原创 2007-12-20 10:56:00 · 2071 阅读 · 1 评论 -
Boost 入门及其VS2005下编译boost库
1 Boost简介Boost是什么?一套开放源代码、高度可移植的C++库。谁发起的?C++标准委员会库工作组。所以,质量保证,不怕遇到假冒伪劣产品。正则表达式,可以与POSIX API和Perl语言处理正则表达式的功能相媲美,而且还能支持各种字符类型(如char、wchar_t,甚至还可以是自定义字符类型);1. 线程,想了很久的跨平台多线程库了;2.原创 2007-12-28 10:30:00 · 1076 阅读 · 0 评论 -
单件模型 Singleton
单件模型 Singleton原创 2010-05-31 16:25:00 · 750 阅读 · 0 评论