123456

 

2010年12月1日

DbgView.exe的应用和使用类

摘要: 用处:release版本中打印信息: 用法:在工程中加入类DebugShow.h:包含到调用部分#include类DebugShow就一个函数:BOOL DebugTrace(TCHAR * lpszFormat,...){ static HWND hwnd = ::FindWindow(NULL, _T("DbgView")); if(!IsWindow(hwnd)) hwnd = ::FindWindow(NULL, _T("DbgView")); if(hwnd) { static TCHAR szMsg[512]; va_list argList 阅读全文

posted @ 2010-12-01 19:04 hgy413 阅读(353) 评论(0) 推荐(0) 编辑

#pragma once与 #ifndef的区别

摘要: 为了避免同一个文件被include多次1 #ifndef方式2 #pragma once方式在能够支持这两种方式的编译器上,二者并没有太大的区别,但是两者仍然还是有一些细微的区别。 方式一: #ifndef __SOMEFILE_H__ #define __SOMEFILE_H__ ... ... // 一些声明语句 #endif 方式二: #pragma once ... ... // 一些声明语句 #ifndef的方式依赖于宏名字不能冲突,这不光可以保证同一个文件不会被包含多次,也能保证内容完全相同的两个文件不会被不小心同时包含。当然,缺点就是如果不同头文件的宏名不小心“撞车”,可能就会导 阅读全文

posted @ 2010-12-01 16:55 hgy413 阅读(130) 评论(0) 推荐(0) 编辑

内存对齐的一点个人理解

摘要: 1.默认的#pragma pack(k)中k的大小是多少?vc下默认是8。2.什么叫偏移值?偏移值是相对于数据存储的首地址而言的,首地址的偏移值自然为0,首地址后一位的偏移值自然为1。2.结构体(结构体不内嵌子结构体)内存对齐原则是什么?#pragma pack(k),(1).对于结构的各个成员,第一个成员位于偏移为0的位置(也就是首地址开始),以后每个数据成员的偏移值必须是min(k,这个数据成员的自身长度(设为len)) 的倍数,明白点说,如果len小于K,起始位置的偏移值为len倍数,如果大于k,起始位置的偏移值为len倍数。(2).在(1)完成后,如果得到的的总大小为sum,sum必须 阅读全文

posted @ 2010-12-01 10:43 hgy413 阅读(152) 评论(0) 推荐(0) 编辑

导航