C++
mxzy55560593
这个作者很懒,什么都没留下…
展开
-
内存对齐
<br />内存对齐<br />规则1:对于结构体第一个成员,偏移为0;以后每个数据成员,偏移=[min(#pragma pack(),sizeof(自己))的倍数]<br />规则2:完成规则1后,结构或联合本身也要进行对齐,临时值=min(#pragma pack(),sizeof(结构或联合中字节最长的数)),最终字节数=临时值的整数倍并且最接近规则1字节数(不够则添加)<br />例:struct{char,int,short},sizeof()大小为12<br />内存对齐主要作用<br />程序原创 2010-12-06 09:40:00 · 464 阅读 · 0 评论 -
SEH
1:基础1:当一个线程出错时,操作系统会回调一个用户定义的回调函数//操作系统回调的函数_except_handlerEXCEPTION_DISPOSITION __cdecl _except_handler( struct _EXCEPTION_RECORD *ExceptionRecord, void * EstablisherFrame, struct _CONTE原创 2011-08-25 13:50:23 · 427 阅读 · 0 评论 -
C++基本语法
0:include ""和""会先搜索当前文件目录,然后标准搜索;自己写的文件一般用这种方式 1:静态数据成员静态数据成员的初始化在类外,静态函数成员一种用途就是用来输出静态数据成员,因为他们都不需要构造类 2:有元函数一般调用:class A{public: void pt(A *p) { coutm_nNum<<endl; }p原创 2011-12-18 21:19:59 · 7685 阅读 · 0 评论 -
获得高精度时间
1: LONGLONG t1,t2;LONGLONG persecond;QueryPerformanceFrequency((LARGE_INTEGER*)&persecond);QueryPerformanceCounter((LARGE_INTEGER*)&t1);//代码QueryPerformanceCounter((LARGE_INTEGER*)&t2);double time=(t2-t1)/persecond;2:__declspec (naked) unsi原创 2010-12-07 11:50:00 · 463 阅读 · 0 评论 -
程序退出
<br />WM_DESTROY关闭程序<br />WM_CLOSE关闭窗口<br />WM_QUIT关闭消息循环<br /> <br />WM_CLOSE调用DestroyWindow(),DestroyWindow()发送WM_DESTROY,响应WM_DESTROY调用PostQuitMessage(0),PostQuitMessage()发送WM_QUIT原创 2011-01-06 17:31:00 · 352 阅读 · 0 评论 -
内存泄露示例
<br />struct New_Info { int point; unsigned int size; string file; int line; New_Info(int p,unsigned int s,const char *f,int l) { point=p; size=s; file=f; line=l; }};vector<New_Info> g_vNewInfo;void operator delete原创 2011-02-09 00:18:00 · 328 阅读 · 0 评论 -
内存泄露检测
<br />1:包含头文件<br />#include<stdlib.h> <br />#include<crtdbg.h><br />2:每个cpp文件包含<br />static char THIS_FILE[] = __FILE__;<br />#define new new(_NORMAL_BLOCK, THIS_FILE, __LINE__)<br />3:设置标志<br />int tmpDbgFlag;<br /> tmpDbgFlag = _CrtSetDbgFlag(_CRTDBG_REP原创 2011-02-13 21:34:00 · 328 阅读 · 0 评论 -
重载new
<br />void* operator new(size_t sz)<br />{<br /> void* mem = malloc(sz);<br /> if (mem)<br /> return mem;<br /> return NULL;<br />};<br />void operator delete(void* ptr)throw()<br />{<br /> free(ptr);<br />};原创 2011-05-20 09:57:00 · 302 阅读 · 0 评论 -
重载全局new
1:MyNew.hvoid* operator new(size_t sz,char * file,int line);void operator delete(void *p);MyNew.cpp#include "stdafx.h"#include "MyNew.h"void* operator new(size_t sz,char * file,int line){ return malloc(sz);};void operator delete(void *p){原创 2011-06-02 18:20:00 · 656 阅读 · 0 评论 -
NTDDI_VERSION,_WIN32_WINNT,WINVER,_WIN32_IE定义宏的含义
在使用AllocateUserPhysicalPages和MapUserPhysicalPages时出现错误,原因如下,在stdafx.h中加入#define _WIN32_WINNT 0x0501 在使用一些新版本的API,或者控件的新特性(比如新版的ComCtl32.dll)的时候,你可能会得到“error C2065: undeclared identifier.“这个错误。原因是这转载 2011-10-20 17:12:39 · 720 阅读 · 0 评论