| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 572 人关注过本帖
标题:请教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
快速回复:请教dll泄漏问题
数据加载中...
 
   



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

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