У меня проблема с освобождением памяти объекта. Вот мой код:
void Gateway::connect(DWORD dwIP)
{
if (m_objRRSInterface != NULL)
{
//delete m_obj;
m_obj = NULL;
}
m_obj = new objClass();
m_obj->SetCallBackFn(fncp);
if (m_obj->OpenSocket(dwIP, 3002))//3002 -port number
{
m_bConnect = TRUE;
}
else
{
m_bConnect = FALSE;
delete m_objRRSInterface;
m_obj = NULL;
}
}
objClass
это не мой собственный класс, он импортируется из внешнего .dll.
OpenSocket
метод открывает соединение через сокет через порт 3002, а затем я получаю все данные по fncp.
Эта функция работает нормально при первом вызове.
Проблема возникает, когда я вызываю функцию во второй раз. Проблема в том, что у меня нет метода CloseSocket
, который я мог бы вызвать для надежного закрытия сокета.
Мой вопрос к вам, ребята, таков: есть ли способ избавиться от объекта и всех зависимостей этого объекта?
Я пытался позвонить delete m_obj;
, но приложение зависает.