Российский производитель и разработчик сертифицированного измерительного оборудования с 1987 года


CreateInstance Утечка памяти при отсутствии платы

Вы не вошли.

 Поиск | Регистрация | Вход 

Вадим
22.03.2011 07:00:53
#1

Гость

CreateInstance Утечка памяти при отсутствии платы

При тестировании программы, на компьютере без платы АЦП, в фоновом потоке происходят попытки инициализации, что вызывает утечку памяти.

extern "C" LUnknown* CreateInstance(ULONG Slot)
{
   LUnknown* pI;
//   char buf[128];

   LSetLastError(L_SUCCESS);
   SLOT_PAR sl;
   LDaqBoard *pL = new LDaqBoard(Slot);
   if(pL==NULL) { LSetLastError(L_ERROR); return NULL;}
   HANDLE hVxd = pL->OpenLDevice();
   if(hVxd==INVALID_HANDLE_VALUE)
   {
      if(LGetLastError()==ERROR_FILE_NOT_FOUND) LSetLastError(L_ERROR_NOBOARD);
      if(LGetLastError()==ERROR_ACCESS_DENIED) LSetLastError(L_ERROR_INUSE);
      return NULL;
   }

Перед "return NULL;" нужно добавить "delete pL;". У меня под рукой нет Visual C++ 2010, возможно ли выложить или послать на мыло исправленную 32 битную dll?

22.03.2011 11:21:43
#2

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: CreateInstance Утечка памяти при отсутствии платы

сегодня исправлю и положу в библиотеку файлов lcomp.exe