随笔分类 - 问题与总结
获取 xml 节点文本,一下方式如果遇到很长的文本(如CRichEditCtrl 的 rtf 流)则无法返回正确值
摘要:获取 xml 节点文本,一下方式如果遇到很长的文本(如CRichEditCtrl 的 rtf 流)则无法返回正确值MSXML2::IXMLDOMNodePtrm_spCurrentNode;for(INT i=0;im_spCurrentNode-childNodes-length;i++){if(m_spCurrentNode-childNodes-item[i]-nodeType ==MSXML2::NODE_TEXT){ str1 = m_spCurrentNode-childNodes-item[i]-text;strNodeValue = str1;break;}/
阅读全文
strcpy()、memcpy()、memmove()、memset()的实现
摘要:http://www.cnblogs.com/EricYang/archive/2009/09/03/1559827.html其实转的是两篇文章,有些交叉点故合为一篇,分别转自:函数简介:memmove、memcpy和memccpy简介函数实现:strcpy()、memcpy()、memmove()、memset()的实现memmove、memcpy和memccpy三个函数都是内存的拷贝,从一个缓冲区拷贝到另一个缓冲区。 memmove(void *dest,void*src,int count) memcpy(void *dest,void *src,int count) memccpy(v
阅读全文
获取 GetLastError 文本信息
摘要:DWORD derr = GetLastError(); derr = derr; LPVOID lpMsgBuf; FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, GetLastError(), 0, // Default language (LPTSTR) &lpMsgBuf, 0, NULL ); // Process any inserts in lpMsgBuf. // ... // Display the
阅读全文
彻底了解c/c++指针
摘要:参见 http://hi.baidu.com/%C6%BF%D6%D0%B5%C4%C5%AE%CE%D7/blog/item/6fbc82cfc5f31b0b92457e3c.html1.1. 一 :关于指针和堆的内存分配 1.1.1. 先来介绍一下指针:指针一种类型,理论上来说它包含其他变量的地址,因此 有的书上也叫它:地址变量。既然指针是一个类型,是类型就有大小,在达内的 服务器上或者普通的PC机上,都是4个字节大小,里边只是存储了一个变量的地 址而已。不管什么类型的指针,char * ,int * ,int (*) ,string * ,float * ,都是说明了本指针所指向的地址空
阅读全文
用API 现成的函数处理工程退出时的文件保存
摘要:用API 现成的函数处理工程退出时的文件保存,当然也可以直接使用CDocument,通过调用 BOOL CDocument::SaveModified()来实现CString prompt;AfxFormatString1(prompt, AFX_IDP_ASK_TO_SAVE, name);switch (AfxMessageBox(prompt, MB_YESNOCANCEL, AFX_IDP_ASK_TO_SAVE))!!{case IDCANCEL:return FALSE; // don't continuecase IDYES:// If so, either Save or Up
阅读全文
C++内联函数(Inline)介绍
摘要:http://blog.chinaunix.net/u/21790/showart_355862.html介绍内联函数之前,有必要介绍一下预处理宏。内联函数的功能和预处理宏的功能相似。相信大家都用过预处理宏,我们会经常定义一些宏,如#defineTABLE_COMP(x)((x)0?(x):0) 就定义了一个宏。 为什么要使用宏呢?因为函数的调用必须要将程序执行的顺序转移到函数所存放在内存中的某个地址,将函数的程序内容执行完后,再返回到转去执行该函数前的地方。这种转移操作要求在转去执行前要保存现场并记忆执行的地址,转回后要恢复现场,并按原来保存地址继续执行。因此,函数调用要有一定的时间和空
阅读全文
COM编程
摘要:用VC进行COM编程所必须掌握的理论知识 http://dev.csdn.net/article/6/6643.shtm ATL接口映射宏详解 http://dev.csdn.net/article/13/13924.shtm
阅读全文
ListCtrl 的 LVN_ITEMCHANGED 误区
摘要:ListCtrl 的 LVN_ITEMCHANGED 误区http://hankersyan.spaces.live.com/blog/cns!5e5b72df778bf6e6!112.entry为了CListCtrl能响应 单击选中事件 和 键盘上下键 事件,使用 ON_NOTIFY 的LVN_ITEMCHANGED 事件似乎可以解决问题, 但是由于 LVN_ITEMCHANGED 能响应太多行为致使函数被多次触发(如: 由没选中到选中触发一次;由选中一行到选中另一行触发三次;选中到不选中再触发一次),从而影响效率。可以用 ON_NOTIFY(NM_CLICK, IDC_XXX , OnCl
阅读全文
请问WIN32编程中的HRESULT类型和LRESULT类型有什么不同呢
摘要:其实都是32位的无符号长整型值,只不过其分别代表的含义不同LRESULT LRESULT是一个数据类型, MSDN: 32-bit value returned from a window procedure or callback function 指的是从窗口程序或者回调函数返回的32位值HRESULT http://baike.baidu.com/view/1754469.htm?fr=ala0函数返回值。如果这个函数是执行完返回的话将包含就有实际意义的数据,如果立即返回则包含状态信息--发送成功与否,并不能说明执行的如何。 HRESULT A value returne
阅读全文
大家有没有发现ListCtrl的LVN_ITEMCHANGED时间为什么连续响应3次,是不是vc的bug,急!!!
摘要:大家有没有发现ListCtrl的LVN_ITEMCHANGED时间为什么连续响应3次,是不是vc的bug,急!!!http://topic.csdn.net/t/20050712/11/4138831.html检查程序中有没有设置选中状态的 SetItemState(l_nIndex, 0, LVIS_SELECTED); 操作做如下状态判断:http://hi.baidu.com/_linwei_/blog/item/57f9c1df7fc4075fcdbf1a24.html消息处理函数:void C***Dlg::OnItemchangedList(NMHDR* pNMHDR, L
阅读全文
下面我使用vector容器为基础来构成一棵树
摘要:下面我使用vector容器为基础来构成一棵树. 例如我们要生成以下结构的树. 3 2 2 2 2 1111 1111 1111 1111 这是课四叉数, 而且下层比上层的值小1. 来看代码: //使用STL构成一棵树 #includevector //vector容器 #includeiostream //输入输出 using namespace std; const int LEAVES_MAX = 4; //最大子叶数 //树节点结构 struct TreeNode { int num; vectorTreeNode Sub; }; vector
阅读全文
CListCtrl 右键处理
摘要:void CThumbnailListCtrl::OnNMRclick(NMHDR *pNMHDR, LRESULT *pResult){// TODO: 在此添加控件通知处理程序代码LPNMITEMACTIVATE lpnmitem = (LPNMITEMACTIVATE)(pNMHDR);...}// 因为typedef struct tagNMITEMACTIVATE{ NMHDR hdr; !!!--传入头 int iItem; int iSubItem; UINT uNewState; UINT uOldState; UINT uChanged; POINT ptAction; LP
阅读全文
常用访问的网址网站
摘要:bookmark常用网站--> 感谢您的注册 - 博客园 http://home.cnblogs.com/blog/新的博客地址--> InfoQ http://www.infoq.com/cn/--> 北京企商在线 - 专业虚拟主机服务提供商 - 虚拟主机、北京虚拟主 http://www.net...
阅读全文
本机串口调试接线方法
摘要:1、本机串口调试接线方法用两个USB转串口线,分别接入电脑的USB口-〉用串口信号交叉线连接连个串口-〉开两个串口大师,一个连接com1,一个连接com2-〉可以用com1和com2互相法信息了
阅读全文
矩阵文件书写的简洁代码
摘要:szRLine =_T("\n");!!!corefor (int j=0;jthis-m_nCloum;j++){//列CString txt;float *pf = (float *)m_pvData;float f = pf[i*m_nCloum+j];txt.Format( _T("%0.5f\t"),f);szRLine += txt;}szRLine +=_T("\r");!!!core
阅读全文
计算所与北大往事回顾
摘要:计算所与北大往事回顾刘群 序引言在二室攻读硕士学位开始独立研究·跟北大计算语言所合作计算所改革·跟李所长第一次接触二室的一些人和事对智能中心的印象在软件室计算所的新气象研究工作进展软件室的一些事情·跟李所长第二次接触在数字化室研究工作进展和取得的成绩获得博士学位跟李所长的第三第四次接触结语后记http://mtgroup.ict.ac.cn/~liuqun/research/experience.htm
阅读全文
InterLockedIncrement and InterLockedDecrement函数原理
摘要:http://hi.baidu.com/drunkdream/blog/item/014e1cce56efe730b600c88e.htmlInterLockedIncrement and InterLockedDecrement函数原理2009-07-01 20:57InterLockedIncrement and InterLockedDecrement实现数的原子性加减。什么是原子性的加减呢?举个例子:如果一个变量 Long value =0;首先说一下正常情况下的加减操作:value+=1;1:系统从Value的空间取出值,并动态生成一个空间来存储取出来的值;2:将取出来的值和1作加法
阅读全文
临时对象问题
摘要:http://topic.csdn.net/t/20060412/19/4682278.html比如我重载了+运算符,然后返回integer对象 return integer (left.i + right.i) ; 书上说:"这样情况时,编译器明白对创建的对象没有其他需求,只是返回它,所以编译器直接地把这个对象创建在返回值外面的内存单元。因为不是真正创建一个局部对象,所以仅需要单个的普通构造函数调用(不需要拷贝构造函数),并且不会调用析构函数。因此,这种方法不需要什么花费,效率是非常高的。 我的问题是:1.里面说指的外面的内存单元指的是什么? 2.既然调用了普通的构造函数,为什么退
阅读全文