为什么小弟我使用SetUnhandledExceptionFilter没有效果啊

为什么我使用SetUnhandledExceptionFilter没有效果啊?
我的代码如下:
static   LPTOP_LEVEL_EXCEPTION_FILTER   g_topExceptFunc   =   NULL;
LONG   __stdcall   myExceptionFilter(PEXCEPTION_POINTERS   pExceptionInfo)
{
        ...
        WriteLogFile(   TEXT( "c:\\log.txt "),   str   );
        if   (g_topExceptFunc   !=   NULL)   {
                return   g_topExceptFunc(pExceptionInfo);
        }
        return   EXCEPTION_CONTINUE_SEARCH;
}

BOOL   CTestExceptApp::InitInstance()
{
        g_topExceptFunc   =   SetUnhandledExceptionFilter(myExceptionFilter);
        ...
}

下面是人为制造的一个错误:
char   *a   =   new   char[2];
memset(   a,   'a ',   2048   );
printf( "%s ",   a   );


当注释掉   SetUnhandledExceptionFilter   的调用时,   会弹出系统默认的出错的对话框指示内存访问错误,   当不注释时,   该对话框就不弹出了,   而我的函数   myExceptionFilter   也没有被执行,   这是为什么呢?       我用vc2005新增一个工程,   把相同的代码移过去,   则是有效的,   myExceptionFilter会被调用。

所以想请教高手,有什么因素会导致   SetUnhandledExceptionFilter   无效呢?
另外,我的程序原来是   vc6.0   的工程,   后来使用   vc2005   编译的,不知和这个有没有关系?

------解决方案--------------------
http://support.microsoft.com/kb/173652