Re[5]: __finally
От: 0x64Rm  
Дата: 27.03.03 13:30
Оценка:
Здравствуйте, parsek, Вы писали:

P>он же не выполняет HeapFree. Речь идет о том, что блок __finally вообще не исполняется.


Привет еще раз. Очень интересно! Извини что я так настойчив но здоровое любопытсво не отпускает
Будь другом попробуй вот это еще (последнее и если не пройдет я склонен считать, что это глюк С)

  __finally
        {  
            HeapFree( GetProcessHeap(), 0, ptr );
            MessageBox(NULL,"Hello form __finally!","",MB_OK);
        }


видишь мессаджбокс?

или вот весь пример у меня, который работает

#include "stdafx.h"
#include <windows.h>


BOOL whatever() 
{
  BOOL bSuccess = FALSE;
  DWORD cbSid = 128;
  LPBYTE ptr = 0;
  DWORD res = 0;

  __try 
    {
         // initial memory allocations
         if( ( ptr = (LPBYTE)HeapAlloc( GetProcessHeap(),0, cbSid)) == NULL ) 
            __leave;
             
             //  Some processing

             bSuccess = TRUE;
        }
  __finally
        {  
            HeapFree( GetProcessHeap(), 0, ptr );
            MessageBox(NULL,"Hello form __finally!","",MB_OK);
        }
    return bSuccess;
}

int main(int argc, char* argv)
{
    whatever();
    return 0;
}


всего доброго
с уважением,
Алексей
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.