2

4 つの関数を使用してサード パーティの C DLL にアクセスするMCVC++ 2010MFC プロジェクトがあります。Visual Studio 2010 の Win32 プロジェクトで DLL が正常に動作するようになりました。

"Microsoft Visual Studio C Runtime Library has detected a fatal error"このDLLから関数にアクセスしようとした瞬間。コール スタックや出力コンソールに有益な情報が表示されません。関数呼び出しの直後、コントロールは debughook.c の最後に到達します。_debugger_hook_dummy = 0;

dbghook.c

int __cdecl _CrtDefaultAllocHook(int nAllocType,void * pvData, size_t nSize,int nBlockUse, long lRequest,const unsigned char * szFileName, int nLine )
{
return 1; /* allow all allocs/reallocs/frees */
}

#endif  /* _DEBUG */

int _debugger_hook_dummy;

#ifdef _M_IA64
#undef _CRT_DEBUGGER_HOOK
#define _CRT_DEBUGGER_HOOK __crt_debugger_hook
#endif  /* _M_IA64 */

__declspec(noinline)
void __cdecl _CRT_DEBUGGER_HOOK(int _Reserved)
{
    /* assign 0 to _debugger_hook_dummy so that the function is not folded in retail */
    (_Reserved);
    _debugger_hook_dummy = 0;
}

コードは で囲まれていますがtry-catch、ステップインしようとすると、コントロールが catch ブロックに到達しません。問題がどこにあるかの明確な指標はありません。ポインタはありますか?

4

0 に答える 0