问题签名:
问题事件名称: BEX
应用程序名: NangGang11.20.vshost.exe
应用程序版本: 9.0.21022.8
应用程序时间戳: 47316898
故障模块名称: MSVCR80.dll
故障模块版本: 8.0.50727.6195
故障模块时间戳: 4dcddbf3
异常偏移: 00008aa0
异常代码: c000000d
异常数据: 00000000
光给出一个异常信息,天知道是什么错误。
这段错误信息中稍微有点用处的是
故障模块名称: MSVCR80.dll
这告诉你是C运行时库丢出了错误。但是这可能是你调用dll本身的问题,也不能排除是dll本身就有bug。
BEX: Indicates a buffer overflow (/GS) or DEP exception (BEX64 indicates a buffer overflow (/GS) or DEP exception on 64-bit versions of Windows)
缓冲区溢出了。
0xC000000D: STATUS_INVALID_PARAMETER. An invalid parameter was passed to a service or function.
非法参数。
只有这些信息的话,我猜是楼主调用的时候参数给错了,或者参数给了一些错误的值,比如需要一个非null对象的时候给了null。
dll代码指针操作有问题等,越界
Application.ThreadException += new ThreadExceptionEventHandler(Application_ThreadException);
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
确定的是诚序会在dll给出的接口函数处出错,一般都能进catch 报个外部组件异常,而有时catch捕捉不到异常,程序就直接崩溃了,如何保证能将所有的异常捕获到呢, Application.ThreadException += new ThreadExceptionEventHandler(Application_ThreadException);
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);发现这两个函数也捕捉不到,根本就没进去。