none
反复调用ActiveX中的函数内存会出现增长情况 RRS feed

  • 问题

  • ActiveX控件中可确认没有内存泄漏情况,在调用部分也应该没有什么内存泄漏的情况,但是发现ActiveX中的函数每调用一次或两次,内存就会增长一点,请问这是怎么回事啊?如何避免这种情况呢?

     

    PS:

    我的ActiveX控件的功能很简单,就是声明了几个Property变量,同时也声明了一些方法来设置这几个Property的值,最后在OnDraw函数中把这几个Property变量值显示出来。


    另外:

    我刚才直接在对话框程序中把ActiveX当做一个控件使用测试了下,内存并不增长。

    原来是在多文档中动态加载的ActiveX控件。

    2011年9月26日 9:26

答案

  • 在你的ActiveX控件做一个空函数,然后反复调用这个空函数看有没有泄露问题

    如果有就检测调用部分的代码

    如果没有就检查你调用的会导致内存增长的代码

    • 已标记为答案 Rob Pan 2011年10月4日 7:56
    2011年9月27日 2:25

全部回复

  • 用vb

    cxcxcxcxcx

    2011年9月26日 9:48
  • 用VB难道就不会出现内存增长现象了吗?

    另外我的程序可是VC的啊,没法换成VB的啊。

    2011年9月26日 13:38
  • 是不是您的GDI资源使用完了以后没有释放呢?
    Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.
    2011年9月27日 1:04
    版主
  • 是不是您的GDI资源使用完了以后没有释放呢?
    Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.

    在ActiveX控件中我只使用了CPen,CBrush,CFont三种GDI资源,每次使用过程后我都把老的资源再次SelectObject了,这应该算是释放了资源了吧?
    2011年9月27日 1:38
  • 在你的ActiveX控件做一个空函数,然后反复调用这个空函数看有没有泄露问题

    如果有就检测调用部分的代码

    如果没有就检查你调用的会导致内存增长的代码

    • 已标记为答案 Rob Pan 2011年10月4日 7:56
    2011年9月27日 2:25