摘要:方法一、#include<iosteam>#include<ctime>usingnamespacestd;classCTimer{public:CTimer(){_start=clock();}~CTimer(){_end=clock();cout<<float(_end-_start)/CLK_TCK<<endl;}private: clock_t_start;clock_t_end;};voidmain(){CTimert;//程序执行部分!} 方法二://在windows下实现(毫秒级):DWORDdwStart=GetTickCount
阅读全文
随笔分类 - C++/C
摘要://C++高精度实现计算程序运行时间#include <iostream> #include <windows.h> using namespace std; void Test()//测试程序 { for(int i=0; i<1000; i++) { for(int j=0; j<100; j++) { printf("%d,%d\n",i,j); } } } int main(void) { LARGE_INTEGER BegainTime ; LARGE_INTEGER EndTime ; LARGE_INTEGER Freque
阅读全文
摘要:GetTickCount()和GetCurrentTime()都只精确到55ms(1个tick就是55ms)。如果要精确到毫秒,应该使用timeGetTime函数或QueryPerformanceCounter函数。具体例子可以参考QA001022 "VC++中使用高精度定时器"、QA001813 "如何在Windows实现准确的定时"和QA004842 "timeGetTime函数延时不准"。GetTickCount精度不够,自己实现真正的毫秒级函数虽然GetTickCount返回值的单位是1ms,但实际上它的精度只有10ms左右。
阅读全文
摘要:目前,根本没有办法精确测量程序运行时间,但可用两类方法进行估测:一是基于计时器Timer,一是基于计数器Counter。一) 基于Timer的测量方法缺点:精度不够,不能用于程序运行持续时间小于100ms的测量优点:准确性不是十分依赖于系统负载,并且在执行时间大于1s的程序上,与理论值之间的误差很低方法:在程序开始时读取计时器的内容,在程序终止前再次读取Timer的内容。接口函数:(1)Unix/Linuxclock_t times(struct tms *buf);//return value:系统自启动以来经过的时间滴答数,常数CLK_TCK表示每秒经过的时钟滴答数//parameter:
阅读全文
摘要:用高精度计时器#include <iostream>#include <windows.h>using namespace std ;int main(void){ LARGE_INTEGER BegainTime ; LARGE_INTEGER EndTime ; LARGE_INTEGER Frequency ; QueryPerformanceFrequency(&Frequency); QueryPerformanceCounter(&BegainTime) ; //要测试的代码放在这里 QueryPerformanceCounter(&
阅读全文
摘要:如何计算程序话费的时间?下面列出简单的例子#include <ctime> //计时用的头文件#include <iostream>using namespace std;int main(){ time_t start,end,time; /*注意计时所用的变量名称*/ /*程序开始执行,开始计时*/ start=clock(); /*程序执行过程……*/自己的程序代码 /*程序结束执行,结束计时*/ end=clock(); time=end-start;//这里的时间是计算机内部时间 cout << endl << ""
阅读全文
摘要:C++在“商业应用”方面,曾经是天下第一的开发语言,但这一桂冠已经被java抢走多年。因为当今商业应用程序类型,已经从桌面应用迅速转移成Web应 用。当Java横行天下之后,MS又突然发力,搞出C#语言,有大片的曾经的C++程序员,以为C++要就此沉沦,未料,这三年来,C++的生命力突然被 严重地增强了。主力原因就是开源的软件、基础软件(比如并发原生支持,比如Android必定要推出原生的SDK)、各种跨平台应用的出现。开源C++库必须具有以下特点:必须是成熟的产品、跨平台的产品、相对通用的库。一、通用标准类STL:C++标准模板库,呵呵,它也是开源的嘛。boost:C++准标准库,它是强大地
阅读全文
摘要:在基于对话框的程序中,默认是没有这个消息的。 1、按下Ctrl+W,弹出类向导对话框,选择Class Info标签; 2、在Message fileter下拉列表中选择Window,然后再点击Message Maps标签; 3、这时就出现WM_DROPFILES消息了,添加该消息的响应函数。 [cpp] view plaincopyprint?void CDragDlg::OnDropFiles(HDROP hDropInfo) { // TODO: Add your message handler code here and/or call default CDialog::OnD...
阅读全文
摘要:这两天,本来想花点时间研究一下QQ空间、农场外挂,于是抓包分析一了下,只可惜,在QQ网页登录时进行了加密处理,可惜我对网页编程一窍不通。有些朋友曾讲过那些是通过JS代码进行加密,可惜我JS也是一片空白,真是“出师未杰身先死”,惭愧惭愧...... 于是只好挑CSDN这类简易一些的尝试学习一下(仅供学习交流),下面是学习笔记: 程序运行截图: 1、本机环境:Windows XP SP3、ADSL 2、开发工具:WildPackets OmniPeek V5.1.4 Visual C++ 6.0 IE6.0 FlexEdit V2.3.1871 3、数据包截图: (QQ登录时,在密码222...
阅读全文
摘要:相信很多朋友都对QQ伴侣等农场外挂十分好奇吧!其实我也是,然而不幸的是很多像我一样的兄弟在模拟农场登录时,就被JS函数加密的密码字符串给挡在门外,于是百度来google去,始终没有一个完整的代码或例子。 登录时用OmniPeek捕获得到的数据包如下(QQ号1、密码123456、验证码1234): 其实QQ网页登录密码加密方式(包括空间、农场、WEB QQ等)都是一样的。http://imgcache.qq.com/ptlogin/js/comm.js 周末自己便将腾讯JS加密文件给下载下来了。 (腾讯的JS文件居然一个回车符都没有,真够BT的!害我花了二小时才整理完毕!) 关于JS代码,我是.
阅读全文
摘要:1、第一种方法:用微软提供的官方文档From : http://support.microsoft.com/kb/181934/en-us/ Generally, when you want to display a message box for a limited amount of time, you must implement a regular dialog box that closes itself after a specified amount of time. The problem with this method is that you lose the stand.
阅读全文
摘要:1、DLL源代码 MyDll.h[cpp] view plaincopyprint?////////////////////////////////////////////////////////////////////////// // MyDll.h // 声明函数 int _stdcall Add(int a,int b); int _stdcall Sub(int a,int b); //////////////////////////////////////////////////////////////////////////// MyDll.h// 声明函数int _stdca.
阅读全文
摘要:1、Dll相关代码 MyDll.h[cpp] view plaincopyprint?#ifdef DLL1_API #else #define DLL1_API extern "C" __declspec(dllimport) #endif DLL1_API int Add(int a,int b); DLL1_API int Sub(int a,int b); class __declspec(dllexport) Person { public: Person(char *name); char* m_Name; int m_Age; }; #ifdef DLL1_A
阅读全文
摘要:首先是ZeroMemory和memset的区别:1、ZeroMemory是微软的SDK提供的,memset属于C Run-time Library提供的。因此ZeroMemory只能用于Windows系统,而memset还可用于其他系统。 2、ZeroMemory是一个宏,只是用于把一段内存的内容置零,内部其实是用 memset实现的,而memset除了对内存进行清零操作,还可以将内存置成别的字符。 3、如果程序是Win32程序而且不想连接C运行时库,那就用ZeroMemory,如果需要跨平台,那就用memset。所以如果ZeroMemory和memset用于清零操作,其本质是一样的。 然..
阅读全文
摘要:// 控制台程序的基本文本颜色// #define FOREGROUND_BLUE 0x0001 // text color contains blue.// #define FOREGROUND_GREEN 0x0002 // text color contains green.// #define FOREGROUND_RED 0x0004 // text color contains red.// #define FOREGROUND_INTENSITY 0x0008 // text color is intensified.//不同的组合可呈现如下几种颜色■ 0x00■ 0...
阅读全文
摘要:之前碰到论坛里有几个好友,说程序不时的崩溃,什么xxoo不能read的! 如果光要是这个内存地址,估计你会疯掉~~所以分享一下基本的调试技巧,需要准备的工具有WinDbg + VC6.0,下面是自己整理的一份自动生成DUMP文件的源代码,只需要添加到工程即可,源代码如下:MiniDump.hMiniDump.cpp<具体请参考附件SRC中,太大就不贴了>1、在CXXDlg::OnInitDialog()中添加这样一段:BOOL CTestDlg::OnInitDialog(){ CDialog::OnInitDialog(); // ...... SetUnhandledExcep
阅读全文
摘要:1、概述GDI在全称是Graphics Device Interface,即图形设备接口。是图形显示与实际物理设备之间的桥梁。GDI接口是基于函数,虽然使程序员省力不少,但是编程方式依然显得麻烦。例如显示一张位图,我们需要进行“创建位图,读取位图文件信息,启用场景设备,调色板变化“等一系列操作。然而有了GDI+,繁琐的步骤再次被简化。顾名思义,GDI+就是GDI的增强版,它是微软在Windows 2000以后操作系统中提供的新接口。2、GDI+主要功能 GDI+主要提供以下三种功能: (1) 二维矢量图形:GDI+提供了存储图形基元自身信息的类(或结构体)、存储图形基元绘制方式信息的类以及实际
阅读全文
摘要:1.没有解决的外部定义错误xyView.obj : error LNK2001: unresolved external symbol "public: __thiscall CMyOCRInfo::CMyOCRInfo(void)" (??0CMyOCRInfo@@QAE@XZ)可能是由于构造方法没有实现代码2.没有释放 HBITMAP 句柄造成不能创建位图的问题2004.8.17没有及时的释放 HBITMAP 句柄,当创建位图数达到 30 时,出现 8 号错误,即内存不足3.在调试窗口输出信息TRACE(s);4.如果用向导新建类时只有自定义类型,则可能是因为 .clw
阅读全文
摘要:Unicode下TRACE中文(_CrtDbgReport: String too long or IO Error)在使用Unicode的工程项目中,如果是Debug模式。当TRACE Unicode字符串时,会输出提示:_CrtDbgReport: String too long or IO Error有两种方法来解决这个问题方法一:直接使用 OutputDebugString 替换 TRACE相关说明:函数原型:void OutputDebugString(LPCTSTR lpOutputString);功能说明:该函数输出一个字符串给调试器用于显示例子:原语句:TRACE(_T(&qu
阅读全文
摘要:一、很多时候需要在Release版本下调试程序,可以使用以下方法设置:1、无效断点所在的项目和启动项目的设置:项目->属性->配置属性->C/C++->常规->调试信息格式,这里不能为『禁用』;2、项目->属性->配置属性->链接器->调试->生成调试信息,这里设为『是』;3、C/C++->优化->优化选择『禁用』;4、删除解决方案下的.ncb文件;5、工具->选项->调试->『要求源文件与原始版本完成匹配』去掉勾;6、最后在上述设置的情况下,重新编译整个解决方案;二、经过试验,在VC2008下,新建一个
阅读全文