随笔分类 - /*C/C++*/
摘要:静态成员数据和静态成员函数1.C中静态数据和静态函数的用法C语言中定义一个静态变量和静态函数主要是为了满足某个文件的需求比如我们在文件List.c中定义static int count = 0; //静态变量static int get_last_node(List *Head);//定义静态函数二者的作用域都仅仅在文件List.c中。如果main函数在static int get_last_node(List *Head)之前定义,那么就应该在头文件后面用语句:static int get_last_node(List *Head);//定义静态函数进行声明。如果main定义在static
阅读全文
摘要:编写C++模板类时,大部分编译器不允许把类的申明和类成员函数的实现分放在.h和.cpp文件,必须放在同一个文件中或者main.cpp同时引用模板类的.h和.cpp。而通常的做法是把模板类的申明和函数实现都放在一个.h中。原因是:当单独模板类.cpp和main.cpp两者单独编译时,模板类的T类型在使用前还未知类型,如何分配内存还无法确定,自然就无法生成目标文件了。
阅读全文
摘要:一.标准C++库字符串类std::string的用法#includestd::string s1;std::string s3(s2);std::string s2("this is a string");begin 得到指向字符串开头的Iteratorend 得到指向字符串结尾的Iteratorrbegin 得到指向反向字符串开头的Iteratorrend 得到指向反向字符串结尾的Iteratorsize 得到字符串的大小length() 和size函数功能相同max_size 字符串可能的最大大小capacity 在不重新分配内存的情况下,字符串可能的大小empty 判断是否为空opera
阅读全文
摘要:C++中不能重载的运算符:The scope resolution operator ::The conditional operator ?:The direct member selection operator .The size-of operator sizeofThe de-reference pointer to class member operator .*
阅读全文
摘要:(文章来自:http://www.cnblogs.com/Hush/archive/2006/03/09/2717.html)今天看"modern c++ design"的时候发现自己竟然又把以前好不容易弄懂的Traits技术给忘记了,真是...又重新学习了一下,赶紧记下来。Traits技术可以用来获得一个 类型 的相关信息的。 首先假如有以下一个泛型的迭代器类,其中类型参数 T 为迭代器所指向的类型:template <typename T>class myIterator{...};当我们使用myIterator时,怎样才能获知它所指向的元素的类型呢?我们可以为这个类加入一个内
阅读全文
摘要:关于MFC下的文档和视图以及框架之间的访问, 这些问题已经是老生常谈了,但我觉得还是都没有详细的说明,特 别是对于英语较差的人,我查看了一些blog,总结了一下!希望对和我一样的人有点帮助! 1: 因为对于SDI程序,主框架窗口就是文档框窗(如果这个也不知道,就要查看一下MFC下的单文档的构成原理了). 下面所说的是关于单文档的. 例子: 在CMainFrame框架中如何得到视图类的指针. 可以 先得到框架指针,然后调用 GetActiveView 函数指向当前活动视. C **View * pView; pView=(C**View*)((CFrameWnd*
阅读全文
摘要:VC的一些界面库:TuiToolkit(开源,类似Visual Studio 2003风格)http://www.beyondata.com/default.htmGardenUI(免费,界面效果挺好的,XML,代码 界面 分离)http://www.gardenui.com/CJLib(开源,免费,UNICODE编码,是xtreme toolkit的前生,但xtreme toolkit收费了)http://www.codejock.com/LibUIDK(部分免费,不开源,效果好,适合贴图)http://www.iuishop.com/download.htmBCGControlBar(收费
阅读全文
摘要:[转]VC中使用ADO调用存储过程实现方法 开发环境是VS2005,数据库是SQL Sever 2000 1. 在进入正题之前,先讲点别的,如何在VC中连接Sybase数据库, 连接字符窜为,_bstr_t strCnn(\"Driver={Sybase System 11};Srvr=RRRRR;Uid=RRR_Mao_bb1;Pwd=user2\"); 这里,RRRRR是数据库的名称,已经在Sybase->sdedit中设定好了 RRR_Mao_bb1 和 user2分别是用户名和密码 不过使用这种基于ODBC的连接使用一段时间以后,就出现问题了
阅读全文
摘要:很多人大概跟我一样,从Visual C++6.0开始了自己的C/C++编程之路。之后开始接触Visual Stdio,发现这里的VC与6.0有了很大的不同。尤其是在写MFC程序时,添加消息响应、重载基类函数等等, 没有像VC 6.0中的那些操作选项了 。我一开始天真地以为,微软要程序员能全面理解MFC程序的结构,而对像添加消息响应等能够自己在相应位置添加需要的代码。 摸索许久之后,我找到答案了。微软把那些操作都整合到了“属性”面板中了。 。 VC中。。VS中。。。。
阅读全文
摘要:Linux菜鸟初看Linux下编程的糗事。前段时间琢磨着接触一下Linux下的C语言编程,就找了本书看。看到很多文件操作的程序要包含“sys/stat.h”。写程序前,我想先找这个头文件看看。很自然的到文件系统下的sys文件夹下找,发现里面什么.h也没有。很奇怪,第一感觉是该配的环境不完整,所以重装了gcc,不行。后来又在新得立里把很多可疑的库文件给装上,sys下依然没有.h。……后来我明白了,原来所谓的"sys/stat.h"是在"usr/include/sys"下……
阅读全文
摘要:近来发现,函数参数需要const char* 或者 LPCTSTR类型时,可以直接使用CString ,无需任何转换,但并不是所有时候都行,有时程序编译就会报错。 查MSDN...原来是程序是否支持UNICODE的问题。在UNICODE下CString里每个字符是"16-bit" ,所以带来很大的不一样。 CString is based on the TCHAR data type. If the symbol _UNICODE is defined for your program, TCHAR is defined as type wchar_t, a 16-bit characte
阅读全文
摘要:WM_KEYDOWN和WM_CHAR都是键盘消息。TranslateMessage函数已经将按键消息转换成字符消息了,那么WndProc函数中需要对事件进行选择。如:键入“D”键,就应该选择WM_CHAR,因为WM_CHAR 只是字母,不包含特殊字符如Ctrl等。如果键盘键入的是“Ctrl+D”,则应该选择WM_KEYDOWN,因为WM_KEYDOWN既包含字母也包含特殊字符。 WM_CHAR是由WM_KEYDOWN消息Translate()之后产生的,然后再发送给窗口过程。例如按下“D”键,产生WM_KEYDOWN消息
阅读全文
摘要:利用Win32的FindFirstFile和FindNextFile函数,外加递归就可以实现深入子文件夹的文件检索了void CFileSearch_MFCDlg::FindFile(LPCTSTR filePath){ WIN32_FIND_DATA lpFindFileData; char t_filePath[MAX_FILENAMELEN],t_searchFile[MAX_FILENAMELEN],t_findFile[MAX_FILENAMELEN]; HANDLE t_hFile; strcpy(t_filePath,filePath); strcat(t_filePath,"\
阅读全文
摘要:WM_USER常量是Windows帮助应用程序定义私有窗口类里的私有消息,通常使用WM_USER+一个整数值,但总值不能超过0x7FFF。#define WM_USER 0x0400WM_APP常量是Windows帮助应用程序定义私有消息,通常使用WM_APP+一个整数值,但总值不能超过0xBFFF。#define WM_APP 0x8000这两个都定义在WinUser.h中。范围表示0 ~ WM_USER–1操作系统保留的消息。WM_USER ~ 0x7FFF私有窗口类用的整数型消息。WM_APP ~ 0xBFFF应用程序用的消息。0xC000 ~ 0xFFFF应用程序用的字符串
阅读全文
摘要:将数组中的各值随机排列的算法:思路很简单:数组序号是唯一的。多次利用随机函数产生一定范围内的随机数。且与已产生的数不相等程序也很简单:(以1-10为例,其他思路也一样)#include<stdio.h> #include<time.h> #include<stdlib.h> #define SIZE 10main() { int ary[SIZE],i=0,j,k; time_t t; srand((unsigned)time(&t)); //随机数的产生与系统时间有关 for(i=0;i<SIZE;i++) //产生随机序列{ ary[i]
阅读全文
摘要:网上摘的:消息框是个很常用的控件,属性比较多,本文列出了它的一些常用方法,及指出了它的一些应用场合。 1.MessageBox("这是一个最简单的消息框!"); 2.MessageBox("这是一个有标题的消息框!","标题"); 3.MessageBox("这是一个确定 取消的消息框!","标题", MB_OKCANCEL ); 4.MessageBox("这是一个警告的消息框!","标题", MB_ICONEXCLAMATION ); 5.MessageBox("这是一个两种属性的消息框!","标题", MB_ICONEXCLAMATION|MB_OKCANCEL ); 6.if(Me
阅读全文
摘要:窗口隐藏至通知区域的主要代码:void CM2sDlg::OnButtonM() { ShowWindow(SW_HIDE); //////////////////定义系统托盘/////////////////////////// m_tnid.cbSize=sizeof(NOTIFYICONDATA);//设置结构大小// m_tnid.hWnd=this->m_hWnd;//设置图标对应的窗口 m_tnid.uFlags=NIF_MESSAGE|NIF_ICON|NIF_TIP;//图标属性 m_tnid.uCallbackMessage=MYWM_NOTIFYICON;//应用程序
阅读全文
摘要:"delete[] p2”最近碰到的。对delete[]一开始不太明白查了查知道了一些。。C++告诉我们在回收用 new 分配的单个对象的内存空间的时候用 delete。回收用 new[] 分配的一组对象的内存空间的时候用 delete[]关于 new[] 和 delete[]。其中又分为两种情况:(1) 为基本数据类型分配和回收空间;(2) 为自定义类型分配和回收空间所以。对于 (1)。delete[] 和 delete 是等同的 对于(2)。假设自己定义的类userClass。。然后userClass *p=new userClass[NUM]。。delete p在回收空间的
阅读全文
摘要:“像外科手术一样精准,我们拿起锋利的刀子,划开MFC 坚轫的皮肤,再一刀下去,剖开它的肌理。掏出它的内脏,反复观察研究。终于,借着从MFC 掏挖出来的源代码清洗整理后完成的几个小小的C++console 程序,我们彻底了解了所谓Runtime Class、Runtime Time Information、Dynamic Creation、Message Mapping、Command Routing 的内部机制。” 开始觉得《深入浅出MFC》写得真精彩,之前大致浏览的那边,觉得自己根本没看懂。而且还让我跳过了最精彩的第三章《MFC六大关键技术之仿真》。这章,我觉得实在经
阅读全文
摘要:U盘病毒的传播一直没有停息。。其实无非是Autorun.inf在作怪。360和一般杀软现在也都能截获Autorun.inf。并将病毒删除。但有时病毒清除后。病毒带来的伤害却依然存在。。其中。很普遍的一种情况是:中毒后。U盘中原来的文件夹都被隐藏。取代的是与文件夹同名的exe文件。。一直以来。其实我都用两句命令解决。。在cmd中到U盘分区下。 attrib /s /d -s -h -r 将U盘分区下的所有文件和文件夹去除保护、隐藏、只读属性 del *.exe 删除根目录下所有exe文件只要这两个命令。U盘中的文件、文件夹就恢复了。。了解了批处理。我用批处理文件来完成。。知道了system
阅读全文
浙公网安备 33010602011771号