宏
sgdgoodboy
有着超强的战斗力!
展开
-
sizeof、内存对齐和#pragma pack
本来,一般是不自己计算sizeof的,知道内存对齐会对sizeof有影响,所以从来不手算,而是代码里写上sizeof。今天又看到http://blog.vckbase.com/smileonce/archive/2005/08/08/10658.html,翻来了http://blog.vckbase.com/billdavid/archive/2004/06/23/509.html ,自己想转载 2007-08-17 09:41:00 · 715 阅读 · 0 评论 -
ASSERT_VALID()与 ASSERT()异同
ASSERT_VALID()与 ASSERT()异同 ASSERT()是MFC库中的断言,用法是ASSERT(布尔表达式). ASSERT宏用于确保参数内的表达式正确,如果表达式为false,则会显示一个消息对话框,其中有源文件的名字和当前行号,用户可以原创 2007-12-10 10:06:00 · 4153 阅读 · 1 评论 -
reinterpret_cast
reinterpret_cast是C++里的强制类型转换符。操作符修改了操作数类型,但仅仅是重新解释了给出的对象的比特模型而没有进行二进制转换。例如:int n=9;double d=reinterpret_cast (n);在进行计算以后, d 包含无用值. 这是因为 reinterpret_cast 仅仅是复制 n 的比特位到 d, 没有进行必要的分析。因此, 需要谨慎使用 reinterpr原创 2007-12-05 09:26:00 · 752 阅读 · 0 评论 -
_stdcall 与 _cdecl 的区别
几乎我们写的每一个WINDOWS API函数都是__stdcall类型的,首先,需要了解两者之间的区别: WINDOWS的函数调用时需要用到栈(STACK,一种先入后出的存储结构)。当函数调用完成后,栈需要清除,这里就是问题的关键,如何清除?? 如果我们的函数使用了_cdecl,那么栈的清除工作是由调用者,用COM的术语来讲就是客户来完成的。这样带来了一个棘手的问题,不同的编译器产生栈的方式不尽原创 2007-11-21 09:58:00 · 715 阅读 · 0 评论 -
Win32汇编实现DLL的远程注入及卸载
(声明:魏滔序原创,转贴请注明出处。) 所谓DLL远程注入,就是强迫DLL程序运行在其他进程中,这样做的目的无非有两种:第一是伪装自身,第二是控制宿主。前者常见于病毒或木马,后者则一般用于正规之场合,比如常见的输入法、外挂等等,有时Hook(钩子)也用到该技术。由此可见,技术是把双刃剑,区别在于使用技术的人。DLL远程注入的方法一般有如下几种:1.修改注册表,系统启动时自动加载转载 2008-01-22 08:39:00 · 778 阅读 · 0 评论 -
atoi,atol,strtod,strtol,strtoul 类型转换
atof(将字符串转换成浮点型数)相关函数 atoi,atol,strtod,strtol,strtoul表头文件 #include 定义函数 double atof(const char *nptr);函数说明 atof()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时()才结束转换,并将原创 2007-09-05 09:50:00 · 1595 阅读 · 0 评论 -
IMPLEMENT_DYNCREATE宏
类库用它来动态创建对象,例如可以实现读取并创建一个存储在磁盘上的对象。使用方法:将IMPLEMENT_DYNCREATE宏加入到你的类实现文件中即可,更多信息请参考:CObject Class Topics如果你一起始用了DECLARE_DYNCREATE和IMPLEMENT_DYNCREATE宏,你就可以使用RUNTIME_CLASS宏和CObject类的IsKindOf成员函数转载 2007-08-31 10:46:00 · 1390 阅读 · 0 评论 -
#pragma 预处理指令解析
在所有的预处理指令中,#Pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的情况下,给出主机或操作系统专有的特征。依据定义,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的。 其格式一般为: #Pragma Para 其中Para 为参数,下转载 2007-08-17 10:09:00 · 680 阅读 · 0 评论 -
结构体对齐的具体含义(#pragma pack)
还是来自csdn的帖子:主 题: 探讨:内存对齐作 者: typedef_chen ((名未定)(我要骗人))等 级: 信 誉 值: 100所属论坛: C/C++ C++ 语言问题点数: 50回复次数: 1发表时间: 2005-04-02 22:53:27 朋友帖了如下一段代码: #pragma pack(4) class TestB {原创 2007-08-17 10:06:00 · 586 阅读 · 0 评论 -
#pragma用法大全
C和C++的每个实现对它的主机或操作系统都支持一些独有的特征。例如, 某些程序须对存放数据的存储器区域进行精确的控制,或必须控制特定函数接受参量的方式。#pragma指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的情况下,给出主机或操作系统专有的特征。依据定义,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的。 语法 #pragma 语言符号字符串 语言符号字符串是给出转载 2007-12-13 16:24:00 · 1148 阅读 · 0 评论