#define DECLARE_PTHIS(type, offset) type *pThis = (type*)((char*)this) - (long)&(((type*)0)->offset); 有什么作用
解决方案 »
- 加入兔子党,散分!!
- 在程序中识别U盘里面一个文件
- 这个算法怎么写?应该不难,关于倒着取字符
- 代码 APIHOOK之拦截OpenProcess(真正的实现了拦截TerminateProcess)
- 关于自定义消息的问题,是不是只有CWnd派生类的成员函数才能被绑定为消息处理函数?
- 怎样将一个字符数组转换成字符串
- who can tell me ?如何在我分割区内调用其他 EXE(DLL)
- 倒霉!!我家的楼上竟然把卫生间建在我家的厨房上
- 请问哪儿有<<The Design and Evolution of C++>>下载,最好中文版.
- 向各位求教一个条件编译的问题!
- 请问高手,高手,高高手,有没有什么办法能够把GDI+中的Bitmap* 类型的变量,提取出里面的pBit信息啊?
- 问个低级的小问题,高手们说下啊
(long)&(((type*)0)->offset:对象成员“offset”相对起始地址的偏移;二者相减是什么呢?难道是得到包容对象的起始地址?
嗯,有可能,尤其是在嵌套COM中会这样做。
class NODE {
NODE* Last;
NODE* Next;
};
class TESTDATA {
// some data;
NODE Node;
};
程序中使用TESTDATA类建立链表,各节点之间通过Node成员来联系,即Node.Next表示下一节点中Node成员的地址,在NODE类的某个成员函数中如果要得到TESTDATA结构指针时,就可以使用这个宏来取得。
另外提一下,这种做法可读性较差,而且不方便使用,应使用派生类的方式替代,只是某些早期遗留下来的结构中仍采用这种方式。