请教dll泄漏问题
// CGrobal.hclass 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个例子有内存泄露吗