标题:请教dll泄漏问题
只看楼主
whitecometnj
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2010-6-5
 问题点数:0 回复次数:0 
请教dll泄漏问题
// CGrobal.h

class CGrobal
{
public:
    CGrobal();
    ~CGrobal();
    void Create(int sz);
private:
    char *m_pData;
    int  size;
};

// CGrobal.cpp
#include "Grobal.h"

CGrobal g_Grobal;

_declspec(dllexport) void Init(int size)
{
    g_Grobal.Create(size);
}

CGrobal::CGrobal()
{
    size = 0;
    m_pData = NULL;
}

CGrobal::~CGrobal()
{
    if(m_pData)
    {
        delete m_pData;
        m_pData = NULL;
    }
}

void CGrobal::Create(int sz)
{
    m_pData = new char[sz];
    memset(m_pData, 0, sz * sizeof(char));
    size = sz;
}

//////////////////////////////////////////////////////////
以下调用dll
调用1 :
HINSTANCE h1 = LoadLibrary("GROBAL.dll");
.....
Init(5);
.....
FreeLibrary(h1);

调用2 :
HINSTANCE h1 = LoadLibrary("GROBAL.dll");
.....
Init(5);
.....
    {
        HINSTANCE h2 = LoadLibrary("GROBAL.dll");
        ......
        Init(10);
        ......
        FreeLibrary(h2);
    }
.....
FreeLibrary(h1);

// 以上调用的2个例子有内存泄露吗
搜索更多相关主题的帖子: dll 泄漏 
2010-11-06 14:03



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-325168-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018710 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved