Здравствуйте, 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;
}
всего доброго