C++开发
文章平均质量分 72
小人物2014
作出好的产品给大家是我梦想
展开
-
C++内存常识
作者:杜思波 湖南永州人士在C++中,内存分成5个区 : 堆、栈、自由存储区、全局/静态存储区和常量存储区。栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。在一个进程中,位于用户虚拟地址空间顶部的是用户栈,编译器用它来实现函数的调用。和堆一样,用户栈在程序执行期间可以动态地扩展和收缩。堆,就是那些由new分配的内存块原创 2010-01-30 13:31:00 · 629 阅读 · 1 评论 -
Win 95下内存映射文件的工作原理及使用方法
永州 杜思波 原著 一、引言 WIN32 API为我们提供了一种进行文件操作的高效途径,即内存映射文件。内存映射文件允许我们在WIN32进程的虚拟地址空间中保留一段内存区域,把目标文件映射到这段虚拟内存之中。我们可以用存取内存数据的方式直接操作文件中的数据,就好像这些数据放在内存中一样。而实际上,我们并没有、也不需要调用API函数来读写文件,更不需要自己提供任何缓冲算法,操作系统原创 2010-02-06 10:01:00 · 701 阅读 · 0 评论 -
NAT的p2p研究
湖南永州 杜思波原创内容概述:在p2p通信领域中,由NAT(Network Address Translation,网络地址转换)引起的问题已经众所周知了,它会导致在NAT内部的p2p客户端在无论以何种有效的公网ip都无法访问的问题。虽然目前已经发展出多种穿越NAT的技术,但相关的技术文档却很少,用来证明这些技术的稳定性和优点的实际数据更少。本文的目的在于描述和分析在实际中运用得最广泛原创 2010-04-19 20:15:00 · 739 阅读 · 0 评论 -
异步非阻塞串口通讯
<br /><br />目录:<br />1. 异步非阻塞串口通讯的优点<br />2. 异步非阻塞串口通讯的基本原理<br />3. 异步非阻塞串口通讯的基础知识<br />4. 异步非阻塞串口通讯的实现步骤<br />2005.01.05<br />一,异步非阻塞串口通讯的优点<br />读写串行口时,既可以同步执行,也可以重叠(异步)执行。<br />在同步执行时,函数直到操作完成后才返回。这意味着在同步执行时线程会被阻塞,从而导致效率下降。<br />在重叠执行时,即使操作还未完成,调用的函数也会立原创 2011-01-09 20:58:00 · 5391 阅读 · 0 评论 -
something about c++ development what i think about it.
I am peter of course this is my english name ,ok now talk about right content.fellow title of this then you will know what i will talk about, yes is about c++'s development.why i choose this subject to communicate with you?because i found some phenomenons.原创 2011-02-03 22:12:00 · 484 阅读 · 0 评论 -
everyday one code - producter and consumer
#include #include #include #include void *Producter(void* arg);void *Consumer(void* arg);int buffer_Count=0;pthread_mutex_t mutex;int run=1;int main(void){ pthread_t consumer; pthread_t product; pthread_mutex_init(&mutex,NULL); pthread_create(&原创 2011-02-11 22:54:00 · 424 阅读 · 0 评论 -
共享内存的相关概念
引言 进程间的数据交换和共享是一种非常重要和实用的技术。大、中型软件的开发设计多是由众多程序设计人员的合作完成,通常一个程序设计人员只负责其中一个或几个模块的开发,这些模块可以是动态链接库也可以是应用程序或是其他形式的程序组件。这些独立开发出来的程序模块最终需要作为一个整体来运行,即组成一个系统,在系统运行期间这些模块往往需要频繁地进行数据交换和数据共享,对于动态链接库同其主调应用程序之间的数据交换是非常容易实现的,但是在两个应用程序之间或是动态链接库同其主调应用程序之外的其他应用程序进行数据交换就比较困原创 2011-03-09 11:33:00 · 592 阅读 · 0 评论 -
有一个数组,存储的元素为1到10000000的任意数,在其中查找出一个重复的数字
//有一个数组,存储的元素为1到10000000的任意数,在其中查找出一个重复的数字#include stdio.h>int a[3]={1,10000000,10000000};static unsigned char b[10000000/8+1];int i;vo原创 2011-08-05 13:35:10 · 820 阅读 · 0 评论 -
计算机中栈区,堆区,静态存储区,文字常量存储区,代码区的详细解释
一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(static)—,全局变量和静态原创 2012-09-26 15:50:32 · 6678 阅读 · 3 评论 -
DLL使用标准库的时候传值得问题
STL跨平台调用会出现很多异常,你可以试试.STL使用模板生成,当我们使用模板的时候,每一个EXE,和DLL都在编译器产生了自己的代码,导致模板所使用的静态成员不同步,所以出现数据传递的各种问题,下面是详细解释。原因分析:一句话-----如果任何STL类使用了静态变量(无论是直接还是间接使用),那么就不要再写出跨执行单元访问它的代码。 除非你能够确定两个动态库使用的都是同样的S原创 2012-11-27 11:01:14 · 697 阅读 · 0 评论 -
CView给我的一个反思,对MFC的理解需要深入
报错的内容:用鼠标单击视图的时候,就会出现Assert错误,具体为CView类的onmouseActive函数中ASSERT(pParentFrame == pDesktopWnd || pDesktopWnd->IsChild(pParentFrame))解决方法:继承类中响应WM_MOUSEACTIVATEint CMyView::OnMouseActivate(C原创 2014-01-06 11:16:50 · 666 阅读 · 0 评论 -
最近开发的产品涉及到天气情况,留下脚印
Google Weather API 只支持美国地区使用邮政编码进行查询,例如: http://www.google.com/ig/api?hl=zh-cn&weather=94043 (94043 为 山景城, 美国加州 的邮政编码) 而除了美国以外的地区需要使用经纬度坐标作为参数才能执行 Google Weather API, 例如: http://www.google.com转载 2014-01-06 12:33:55 · 619 阅读 · 0 评论 -
由于我的BoBo日志需要天气内容,所以在这里留个脚印。
中国天气网API上次做飞信天气预报的时候简单搜索了一下中国天气网的 API ,当然是没有官方文档的,最初是谁挖掘出来的也不可考了。刚才在增加新功能的时候又顺手搜了一下相关资料,发现这个 API 还真不简单。中国天气网有三个 API 适用于不同场合的使用。http://m.weather.com.cn/data/101050101.html 这个接口返回的格式如下。{转载 2014-01-08 12:19:16 · 535 阅读 · 0 评论 -
对上面文章的字段说明整理如下,请参考.
[list=1]city "北京" //城市名称 city_en "beijing"//应为名称 date_y "2011年10月18日"//当前日期 date "辛卯年"//阴历年 week "星期二"//星期几 fchh "18"//不详 cityid "101010100"//城市编码 //这里的温度 在下午更新原创 2014-01-08 16:05:28 · 567 阅读 · 0 评论 -
C++ CONST的用法总结 ,新手需要注意~~~
const在函数前与函数后的区别一 const基础 如果const关键字不涉及到指针,我们很好理解,下面是涉及到指针的情况: > const int* a = &b; [1] > int* const a = &b; [3]转载 2013-12-25 22:32:58 · 522 阅读 · 0 评论 -
duilib的相关信息
DuiLib源码分析 ——以DuiLib1.01版为分析目标----------------------------------------------------------------------------------分析约定:private o------- 私有的成员变量或方法protect x------- 受保护的成员变量或方法public +------- 公原创 2014-01-21 17:02:27 · 1275 阅读 · 0 评论 -
Richedit研究2
自第一篇发布后,收到了不少建设性的意见,这里尤其感谢网友weolar、路人甲,他们在给我重要提示的同时让我意识到自己的武断。上篇我曾经说过richedit是非常底层的实现,其实我起初也不这么认为,只是在Win2K泄漏代码中能找到几乎所有想要的内容同时却无法发现richedit半点踪迹故形成这种判定。事实正如网友weolar、路人甲提及,richedit属于应用层的实现,看过代码之后感受到一种亲切感转载 2014-01-22 11:01:07 · 772 阅读 · 0 评论 -
关于Richedit的研究分析
自职业生涯起到现在,我参与过三个im类产品,其中我主要负责的是界面库开发。众所周知,im软件中有一个非常重要的控件用于消息展示,实现方式无外乎基于richedit(目前这一类为主要方式,代表:QQ)、基于webbrowser(代表:GTalk),可能会有基于WebKit的,我没有刻意去搜集。很多时候对于相对简单的情况,比如在游戏中,完全可以自己绘制。 我曾经模仿过GTalk的实现方式,由于转载 2014-01-22 10:57:24 · 813 阅读 · 0 评论 -
uafxcwd.lib(dllmodul.obj) : error LNK2005: _DllMain@12 already defined in main.obj
如果出现这种错误:“uafxcwd.lib(dllmodul.obj) : error LNK2005: _DllMain@12 already defined in main.obj ”或者“mfcs42ud.lib(dllmodul.obj) : error LNK2005: _DllMain@12 already defined in main.obj ”,那么“See if you h原创 2014-01-23 23:28:45 · 3093 阅读 · 1 评论 -
uafxcwd.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)"解决办法
如果在编译MFC程序的时候出现下列及类似的错误:1>uafxcwd.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) 已经在 LIBCMTD.lib(new.obj) 中定义1>uafxcwd.lib(afxmem.obj) : error LNK200原创 2014-01-23 23:33:10 · 1547 阅读 · 0 评论 -
WIn32中CInternetSession运行异常,主要是因为获取目前应用程序名出错
最近在做一个小任务,其中有一项功能是获取网页源码,VC中可以用CInternetSession来实现,以下为从MSDN摘下来的CInternetSession session; CHttpFile* file = NULL; file = (CHttpFile *)session.OpenURL(_T("http://www.microsoft.com")); if (NULL原创 2014-01-25 23:04:25 · 3139 阅读 · 0 评论 -
VC++中的字符处理
1.VC++中的char,wchar_t,TCHAR(转载)总体简介:由于字符编码的不同,在C++中有三种对于字符类型:char, wchar_t , TCHAR。其实TCHAR不能算作一种类型,他紧紧是一个宏。我们都知道,宏在预编译的时候会被替换成相应的内容。TCHAR 在使用多字节编码时被定义成char,在Unicode编码时定义成wchar_t。1.VC++中的char,原创 2014-01-27 14:06:37 · 1970 阅读 · 0 评论 -
charformatW结构体认识
typedef struct _charformat { UINT cbSize; DWORD dwMask; DWORD dwEffects; LONG yHeight; LONG yOffset; COLORREF crTextColor; BYTE bCharSet; BYTE bPitchAndFamily原创 2014-01-28 17:42:07 · 1764 阅读 · 1 评论 -
任务栏左下角图标实现方法及排列规范协议
任务栏左下角图标是什么?这里说的,是在任务栏左下角,紧靠"开始"按钮旁边的图标.目前采用这种图标的常用软件有:"小Q书桌"、"360软件小助手"、"云端软件"等实现方法转自"problc"的文章,http://blog.csdn.net/problc/article/details/7039450首先用SPY++之类的工具先探测一下这个图标.转载 2014-01-30 08:47:28 · 1925 阅读 · 0 评论 -
SSL与TLS的区别以及介绍
SSL:(Secure Socket Layer,安全套接字层),位于可靠的面向连接的网络层协议和应用层协议之间的一种协议层。SSL通过互相认证、使用数字签名确保完整性、使用加密确保私密性,以实现客户端和服务器之间的安全通讯。该协议由两层组成:SSL记录协议和SSL握手协议。 TLS:(Transport Layer Security,传输层安全协议),用于两个应用程序之间提供保密性和数原创 2014-01-31 21:52:08 · 804 阅读 · 0 评论 -
RTF格式的深入研究
摘要:本文对RTF文件格式进行分析研究,对RTF文件结构及特性进行了阐述,并分别列举了几个实用性的例子进行详细分析,最终通过VB程序代码实现了一个RTF书写器(不具有所见即所得特性)。本文对软件开发人员及RTF文件格式感兴趣的人员具有参考价值。关键字:RTF、Rich Text Format、Office、文件格式。一、引言富文本格式(RTF)规范是为了便于在应用程序之间轻原创 2014-02-04 18:35:52 · 2500 阅读 · 0 评论 -
向Richedit插入动态Gif的实现
要做一个类似QQ表情的东西,用BCB6.0来做,本来这个工具也不是熟悉,用得多还是VC吧,难!上网查了一下,因为要播放GIF文件,那个在CSDN说的几乎都是说用QQ的ImageOle来做,然后就是一大堆的链接,说哪里哪里有的,怎样引用法但是版权啊而且全都是05年的帖子,奇怪了,难道是百度的错,还是现在没有人做这个了无耐,继续百度 google,找到了一位哥们做的类似 MSN转载 2014-02-05 04:29:00 · 2331 阅读 · 0 评论 -
StgCreateDocfileOnILockBytes复合文档
StgCreateDocfileOnILockBytes最近一直在研究有关CRichEditCtrl的ole技术 CRichEditCtrl 的ole技术 ------------ IRichEditOle ---------------------------如需向原创 2014-02-05 19:05:06 · 1594 阅读 · 0 评论 -
一个可以显示图片(包括GIF动画)的ATL控件,以及在RichEdit中如何使用此控件插入图片
给大家提供一个可以显示图片(包括GIF动画)的ATL控件,以及在RichEdit中如何使用此控件插入图片。其实自己没做什么,主要是参考了Oleg Bykov的文档,只是把他的代码加进ATL工程中封装成了一个ATL控件,原文地址在:http://www.codeproject.com/KB/graphics/pictureex.aspx最直接的办法是您下载已经编译好的文件,您下载MaiYuanO转载 2014-02-05 04:27:16 · 2538 阅读 · 0 评论 -
托盘气泡很长时间才能消失,uTimeout没起到作用
BOOL CUpdateDlg::ShowBalloonTip(LPCTSTR szMsg, LPCTSTR szTitle, UINT uTimeout, DWORD dwInfoFlags)02 03{04m_nid.cbSize=sizeof(NOT原创 2014-02-05 12:42:12 · 846 阅读 · 0 评论 -
sqlite的时间类型 保留个戳戳
Date And Time FunctionsSQLite supports five date and time functions as follows:date(timestring, modifier, modifier, ...)time(timestring, modifier, modifier, ...)datetime(timestring, modifier,原创 2014-02-12 01:15:24 · 596 阅读 · 0 评论 -
软件以人为本
看完这篇文章,其实感触最深的还是 最后一段:软件以人为本脱离人的软件不能叫软件。另外这个女人着实不错~梅洛迪-麦克菲赛尔和她四岁的女儿 《连线》杂志网络版近日刊载文章,介绍了谷歌公司内部的一位女强人,这位名叫梅洛迪-麦克菲赛尔(Melody Meckfessel)的女强人是谷歌程序工具制作团队的负责人,这个团队所制作的程序工具是该公司内部所有其他工程师都要使用的,原创 2014-02-12 14:01:33 · 602 阅读 · 0 评论 -
C/C++中的日期和时间 TIME_T与STRUCT TM转换
摘要:本文从介绍基础概念入手,探讨了在C/C++中对日期和时间操作所用到的数据结构和函数,并对计时、时间的获取、时间的计算和显示格式等方面进行了阐述。本文还通过大量的实例向你展示了time.h头文件中声明的各种函数和数据结构的详细使用方法。关键字:UTC(世界标准时间),Calendar Time(日历时间),epoch(时间点),clock tick(时钟计时单元)1.概原创 2014-02-12 01:46:48 · 573 阅读 · 0 评论 -
荷兰国旗问题、矩阵相乘之Strassen算法
第四十一章~四十二章:荷兰国旗问题、矩阵相乘之Strassen算法前言 本文要讲的两个问题:荷兰国旗和矩阵相乘之Strassen算法都跟分治法相关,故把这两个问题放到了一起。所谓分治,便是分而治之的意思,好比打战时面对敌人庞大的武装部队,采取避其主力,各个击破的策略。 有何问题,欢迎随时不吝指正,thanks。第十一章转载 2014-02-27 11:11:58 · 1727 阅读 · 0 评论 -
string 常用功能封装
#include #include using namespace std;namespace strtool{string trim(const string& str){ string::size_type pos = str.find_first_not_of(' '); if (pos == string::npos)原创 2014-03-01 00:23:54 · 709 阅读 · 0 评论 -
IDataObject详解
第二部分我们介绍了OLE数据传输的相关知识,这一节主要讲怎么实现一个IDataObject接口。然后再给出一个例子。首先我们要明白,IDataObject是一个COM接口,我们就必须得创建一个类,实现这个接口的每一个方法,包括它的基类的方法。1. SdkDataObject.h 头文件: [cpp] view plaincopy原创 2014-02-17 16:28:03 · 4032 阅读 · 1 评论 -
Windows中的时间(SYSTEMTIME和FILETIME)
上一篇中介绍了C运行库中的时间处理函数。这一篇介绍Windows SDk中提供的时间函数。两种时间系统之间没有本质区别(事实上CRT时间是用Windows时间实现的,当然这是说的VC实现),同样提供本地时间和UTC时间之间的转换。不过CRT中的tm时间在SDK中对应为系统时间(SYSTEMTIME),CRT中的time_t时间在SDK中对应的为文件时间(FILETIME),那个"特殊时刻"也变成1转载 2014-02-28 22:55:18 · 590 阅读 · 0 评论 -
RichEdit对ole 对象的相关支持
RichEdit对ole 的相关支持总结1. RichEdit要嵌入ole objects必须要继承 IRichEditOleCallback 接口,这个接口让richEdit能够增加RichEdit对Ole的嵌入支持。 首先在RichEdit的OnCreate中调用SetOLECallback函数,这样就设置了IRichEditOleCallba原创 2014-03-01 19:43:48 · 1307 阅读 · 0 评论 -
string的trim没有,写一个,效果不错
inline static string& left(string& str) { string::size_type index = str.find_first_not_of(" \n\r\t");if (index != string::npos){str = str.substr(index);}return str;}inline static stri转载 2014-03-02 14:29:48 · 513 阅读 · 0 评论 -
字符转换的一些帖子,看到了就收藏一下,不错~
char*、TCHAR*转换CString CString str(****) 下面详细写一下其它转换 ////////////////////////////// /* *********************************************************************** * 函数: TransCStringToTCHAR *原创 2014-03-03 13:34:08 · 412 阅读 · 0 评论