游戏中经常会出现崩溃地址的情况,这让我很恼火,在网络上面看到了一些处理方法,主要有这几种: 1)map file,2) crashFinder,3)BoundsChecker,4)dump文件,主要是这些信息,现在主要说明第四种方法的处理.
这种方法主要是用一个MiniDumpWriteDump函数将信息写入到dmp文件里面去,以及系统的宏__try,和__except.在__except里面就进行异常的处理-写MiniDumpWriteDump函数.
今天在写好了一个小demo之后,想将他移植到游戏工程里面去的时候,发现一个很诡异的做法:
error C2712: Cannot use __try in functions that require object unwinding
感觉很惊讶,
后来在网络上面查找了一些资料,主要涉及到几个点:命令参数(GX,SEH,EHSc),
GX-允许异常处理.SEH-结构化异常处理,EHSc-
http://msdn.microsoft.com/en-us/library/1deeycx5(VS.80).aspx
详细的情况请查阅MSDN.
因为这样C++和SEH的东西(__try/__except)不能混淆起来,所以将他在另外一个函数里面给出来.
http://www.codeguru.com/forum/archive/index.php/t-199810.html
http://www.codeproject.com/KB/cpp/exception.aspx
http://msdn.microsoft.com/en-us/library/xwtb73ad(VS.80).aspx