内存篇
fengbangyue
做一个真实的自我
展开
-
关于类的使用
今天在写程序的时候,由于要用到一个类的多个对象,于是就想使用链表来管理这个。就写了一个结构体包含两个成员,一个是我的类对象,一个是指向该结构体的指针。刚写完就回忆到我曾经这样写的时候遇到过错的,因为我的类里包含了MFC的CString类的成员变量,而这样的变量长度是变得,也就是说会导致结构体分配的空间不足。要使用的话,只能够使用类的指针作为结构体成员。从而保证结构体大小不变问题。对于CStrin原创 2009-11-23 23:59:00 · 529 阅读 · 0 评论 -
offsetof宏学习反思
<br /> 今天在学习COM的时候,发现了一个宏的使用。就是题目所说的offsetof宏。<br />其定义如下:<br />#define offsetof(s,m) (size_t)&(((s *)0)->m) <br />其中s代表一个结构或类对象,m是其成员。<br />初看时我想,将0转换成指针不就是NULL吗。那里还用m成员呢。于是在网上搜索,说的是这样能<br />够骗过编译器。但是,如何骗的呢没写。<br /> <br />于是自己做了下实验,明白了。原因如下:<br /> 其实我们原创 2010-07-03 12:15:00 · 1031 阅读 · 0 评论 -
说说DLL中内存问题
今天调试动态库的时候,有个函数在返回的时候总是要报错。在CALLSTACK窗口中看见是堆栈释放出了问题。但是我一向也是坚持谁申请谁释放不是就OK了吗。空气这函数里面还没有堆操作,全部是局部变量啊,怎么会出错呢?经过仔细排查,最后把函数的调用方式全部改为_stdcall方式,当时还以为是不是参数出入栈问题,找不到原因就乱碰吧。但是虽然不是这里的问题,我却发现,当函数调用方式改为_stdc原创 2010-05-27 00:09:00 · 819 阅读 · 0 评论 -
回调函数的使用
<br />使用回调函数很多,如使用定时器。安装钩子时都会使用回调函数。但是,为什么要使用回调函数,今天我真正地体会到了。由于真正的体会。也才让我对回调函数的使用更加清晰,具体如下:<br /> <br />在我写的一个主模块中,要使用DLL,并且我是通过主模块申请了一个内存模块,保存好数据后。传递到DLL中去处理。而问题是在DLL中处理该内存模块的是一个线程。在DLL中又有另一个线程等待该处理内存模块处理完后根据结果进行处理。开始的时候,我在主模块中进行释放内存,但是有时由于线程还在运行使用数据,造成了错原创 2010-06-02 21:38:00 · 1001 阅读 · 0 评论 -
C++虚继承
本文是有文章末尾的问题引起:原文链接为:http://hi.baidu.com/absolute8511/blog/item/2846613d0fb29ae73d6d978f.html 这篇文章写得很好,一看就让人明白虚继承到底是怎么回事。而我之所以说从它引起是因为我是在使用Inside C++中的讲解virtual int size()函数的时候去测试类大小,我忘记了父类的原创 2011-11-11 14:25:00 · 689 阅读 · 0 评论