摘要:Visual C++开发工具与调试技巧整理	自己总是用VC平台来开发东西,但是有时候总是出这样那样的问题,呵呵,总是需要上网查资料来解决,在这里把自己用到上网查的一些技巧摘录如下,希望对大家有用,省去大家再去搜索的烦恼。1.如何在Release状态下进行调试Project->Setting=>ProjectSetting对话框,选择Release状态。C/C++标签中的Category选General,Optimizations选Disable(Debug),Debut info选Program Database。在Link标签中选中Generate debug info复选框。注
        阅读全文
        随笔分类 - C++/C
摘要:实现文件读写操作的几种方法下面为实现文件读取数据的代码://以下为用C语言读取文件FILE *pfile=fopen("2.txt","r"); char *pbuf; fseek(pfile,0,SEEK_END); long len=ftell(pfile); pbuf=new char[len+1]; pbuf[len]=0; rewind(pfile); fread(pbuf,1,len,pfile); MessageBox(pbuf); fclose(pfile); //以下为用C++语言读取文件 char ch[100]; memset(ch
        阅读全文
        
摘要:在C++编程过程中,随着项目的越来越大,代码也会越来越多,并且难以管理和分析。于是,在C++中就要分出了头(.h)文件和实现(.cpp)文件,并且也有了Package的概念。对于以C起步,C#作为“母语”的我刚开始跟着导师学习C++对这方面还是感到很模糊。虽然我可以以C的知识面对C++的语法规范,用C#的思想领悟C++中类的使用。但是C#中定义和实现是都在一个文件中(其实都是在类里面),而使用C的时候也只是编程的刚刚起步,所写的程序也只要一个文件就够了。因此对于C++的Package理解以及.h文件和.cpp文件的总是心存纠结。幸好导师有详细的PPT让我了解,一次对于Package的认识就明.
        阅读全文
        
摘要:一、C++编译模式通常,在一个C++程序中,只包含两类文件——.cpp文件和.h文件。其中,.cpp文件被称作C++源文件,里面放的都是C++的源代码;而.h文件则被称作C++头文件,里面放的也是C++的源代码。C+ +语言支持“分别编译”(separate compilation)。也就是说,一个程序所有的内容,可以分成不同的部分分别放在不同的.cpp文件里。.cpp文件里的东西都是相对独立的,在编 译(compile)时不需要与其他文件互通,只需要在编译成目标文件后再与其他的目标文件做一次链接(link)就行了。比如,在文件a.cpp中定义 了一个全局函数“void a() {}”,而在.
        阅读全文
        
摘要:1.static_cast在编译时期强制转换,dynamic_cast在运行时期转换(较安全) 2.static_cast是c语言的强制转换代替品;dynamic_cast会运行时检查该转换是否类型安全,只在多态类型时合法,即该类至少具有一个虚拟方法。其中static_cast是相当于C的强制类型转换,用起来可能有一点危险。dynamic_cast在转换前会检查指针(或引用)所指向对象的实际类型是否与转换的目的类型兼容,如果兼容转换才会发生,才能得到派生类的指针(或引用),否则:如果执行的是指针类型的转换引用,会得到空指针;如果执行的是用引用类型的转换,会抛出异常。3.dynamic_ca..
        阅读全文
        
摘要:基础知识 C标准函数集锦 标准C I/O函数 sizeof 用法 正确使用内存 有关c++ string类 堆和栈的区别[再转] C++中的异常(exception) API总结和断点函数 字符集和编码知识 高位优先与低位优先 do...while(0)的妙用 理解虚基类、虚函数与纯虚函数的概念 C之修炼 C代码优化方案 C++代码优化方法总结 VC:CString用法整理(转载) VC的若干实用小技巧 (如何干净的删除一个类) 指针 C++部分操作符 C++中const用法总结 VC定时器SetTimer函数 Shell中关于文件路径操作的API函数 调用DLL VC小...
        阅读全文
        
摘要:etTimer函数用于创建一个计时器,KillTimer函数用于销毁一个计时器。计时器属于系统资源,使用完应及时销毁。 SetTimer的函数原型如下:UINT_PTR SetTimer( HWND hWnd, UINT_PTR nIDEvent, UINT uElapse, TIMERPROC lpTimerFunc ) ; 其中 hWnd是和timer关联的窗口句柄,此窗口必须为调用SetTimer的线程所有;如果hWnd为NULL,没有窗口和timer相关联并且nIDEvent参数被忽略 nIDEvent是timer的标识,为非零值;如果hWnd为NULL则被忽略;如果hWn...
        阅读全文
        
摘要:引言 众所周知,在调试、跟踪和执行应用程序的过程中,程序的日志能为这些工作提供大量有价值的运行信息。因此,程序的日志对应用程序的运行、维护至关重要。 在如何记录程序日志方面,通常有三种选择: 1、采用Log4CXX等公共开源日志组件:这类日志组件的特点是跨平台且功能比较强大,例如可以把日志发往另一台服务器或记录到数据库中等;另外,可配置性较高,可以通过配置文件或程序代码对日志进行很多个性化设置。但从另外一个角度看,由于这些优点往往也导致了在使用方面的缺点。首先,对于一般应用程序来说,它们并不需要太多的功能,通常只需要把日志记录到文件或反馈到应用程序,功能太多反正让用户使用起来觉得繁琐还得...
        阅读全文
        
摘要:liblogger待选为 glog、log4cplus、log4cpp、log4cxx目前准备使用glog,使用方便,性能也不错,待进一步试验,如果有不能满足的功能就转用 log4cplus,功能很全面,不过稍复杂些。其它两个都是三年前就没更新,没好感,暂不准备使用。1.log4cplus最新版本:1.1.0 2012-03-11下载地址:http://sourceforge.net/projects/log4cplus/files/log4cplus-stable/1.1.0功能全面,使用稍复杂。代码示例:#include <log4cplus/layout.h>#include
        阅读全文
        
摘要:1.C++里有区别true是bool型的;TRUE是int型的,VC里这个是ms自己定义的;C++规定不允许只通过返回类型不同区别两个函数================================================你写错了吧……原函数声明是virtual BOOL InitInstance( );你函数声明是bool,麻烦把它写成BOOLbool跟BOOL是不一样的2.而”DWORD"和“HWND"分别指什么?DWORD类型表示“双字”,也就是四字节大小的整型值,在windef.h中,DWORD的定义如下:typedef unsigned long DW
        阅读全文
        
摘要:1、int WriteToLog(char* str){	FILE* log;	log = fopen("D:\\testlog.txt", "a+");	if (log == NULL){ //OutputDebugString("Log file open failed."); return -1;	}	fprintf(log, "%s\n", str);	fclose(log);	return 0;}2、带时间的实现voidWriteLog(char*szLog){SYSTEMTIMEst;GetLocalT
        阅读全文
        
摘要:GDI+接口是Microsoft Whistler操作系统中的一部分,它是GDI的一个新版本,不仅在GDI基础上添加许多新特性而且对原有的GDI功能进行优化。在为开发人员提供的二维矢量图形、文本、图像处理、区域、路径以及图形数据矩阵等方面构造了一系列相关的类,如Bitmap(位图类)、Brush(画刷类)、Color(颜色类)、Font(字体类)、Graphics(图形类)、Image(图像类)、Pen(画笔类)和Region(区域类)等。其中,图形类Graphics是GDI+接口中的一个核心类,许多绘图操作都可用它来完成。 我们首先介绍一下GDI+的新特性以及其编程方式的改变,然后介绍用V.
        阅读全文
        
摘要:基础类1、Dinkumware C++ Library参考站点:http://www.dinkumware.comP.J. Plauger编写的高品质的标准库。P.J. Plauger博士是Dr. Dobb's程序设计杰出奖的获得者。其编写的库长期被Microsoft采用,并且最近Borland也取得了其OEM的license,在其 C/C++的产品中采用Dinkumware的库。2、 RogueWave Standard C++ Library参考站点:http://www.roguewave.com这个库在Borland C++ Builder的早期版本中曾经被采用,后来被其他的库
        阅读全文
        
摘要:string定义:a) string s;//生成一个空字符串sstringa="eholldfs";a="dfgdfg";cin>>a;b) string s(str)//拷贝构造函数生成str的复制品c) string s(str,stridx)//将字符串str内"始于位置stridx"的部分当作字符串的初值d) string s(str,stridx,strlen)//将字符串str内"始于stridx且长度顶多strlen"的部分作为字符串的初值e) string s(cstr)//将C字符串
        阅读全文
        
摘要:工作这么多年,一直使用Mysql,Oracle数据库没有接触过, 这次要使用C/C++语言来调用Oracle的存储过程, 懒得自己去看OCI的API了, 直接上网找别人封装的库, 最后发现了这个ocicpplib, 下载了看了一下, 还不错, 使用起来比较简单。下面就对我使用这个库来调用存储过程的例子说明一下, 对应调用其他的sql语句就不说了, 自己看demo, 很简单的。ocicpplib库的下载地址为 :http://ocicpplib.sourceforge.net/下面使用这个简单的存储过程来进行测试, 有两个输出参数, 一个为字符串类型, 一个为整数类型。CREATEORREPLA
        阅读全文
        
摘要:要是换在C#或Java,各种数据类型随便转换,有各种函数随便挑。但是在C++中还真没有那么简单。我本来是希望能够将123,这样的int类型转换的“123”这样的string,或者C-style也可以。我仔细查了一下C++string可用的方法:当然有了解了一下C++ 中String是什么!官方解释中,string是一种特殊的容器,用于存储字符集。它是basic_string模板类的char实现,可知另外一个就是wchar咯typedefbasic_string<char> string;既然string是容器,那么自然有一些容器有的操作:如我们常见的size,push_back()
        阅读全文
        
摘要:原文地址:http://blog.csdn.net/collin1211/article/details/2483316VC 项目中可以使用的路径宏:宏说明$(RemoteMachine)设置为“调试”属性页上“远程计算机”属性的值。有关更多信息,请参见更改用于 C/C++ 调试配置的项目设置。$(References)以分号分隔的引用列表被添加到项目中。$(ConfigurationName)当前项目配置的名称(例如“Debug”)。$(PlatformName)当前项目平台的名称(例如“Win32”)。$(Inherit)指定在由项目生成系统所撰写的命令行中,继承的属性出现的顺序。默认情况
        阅读全文
        
摘要:HBITMAP CopyDCToBitmap(HDC hScrDC, LPRECT lpRect){if(hScrDC==NULL || lpRect==NULL || IsRectEmpty(lpRect)){ AfxMessageBox("参数错误");return NULL;}HDC hMemDC;// 屏幕和内存设备描述表HBITMAP hBitmap,hOldBitmap;// 位图句柄int nX, nY, nX2, nY2;// 选定区域坐标int nWidth, nHeight;// 位图宽度和高度// 确保选定区域不为空矩形if (IsRectEmpty(
        阅读全文
        
摘要:在windows系列上做编程,gdi是一个很重要的技术点,有很多程序在运行多次后出现异常,除了众所周知的内存泄露以外,gdi资源泄露也是一个很直接的原因.今天就把我自己在编程中总结的一些经验给大家分享,欢迎高手补充.1.Create出来的gdi对象,一定要用DeleteObject来释放,释放顺序是先Create的后释放,后Create的先释放.这里的Create指的是以它为开头的gdi函数,比如,CreateDIBitmap,CreateFont等等,最后都要调用DeleteObject来释放.2.Create出来的dc要用DeleteDC来释放,Get到的要用ReleaseDC释放.3.确
        阅读全文
        
摘要:前一段在一个仿QQ的IM通讯工具中加入屏幕截图以及截图编辑功能,但是测试中发现当连续进行几十次截图后,系统会出现白屏,开始以为和win7经常闪白有关,屏幕截图截取到闪白的瞬间导致白屏,后来发现是GDI内存不足,申请不到GDI内存贴图失败所致。于是找了GDI泄露的工具,对程序进行GDI内存检测,下面就介绍两款GDI泄露检测工具的用法以及GDI编程的一些注意事项。第一款:GDIndicator 支持win7+xp 下载地址1、启动待检测的程序和GDIndicator,启动顺序没有要求,之后F5刷新,就能看到系统中所有进程,和使用的资源数找到想要查看的进程,这里我们的程序是 TPCommonCont
        阅读全文
        
 
                    
                     
                    
                 
                    
                 

 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号