本人前一段时间学习Win32异常,找了C++的Win32异常处理资料,结果在网上偶然发现了超级神豆的这个程序。我也想在VB程序中处理异常,因为我的程序老是在Win98/2000下崩溃,在XP下一切正常,在Vista/Win7下有时会崩溃,还真说不准。于是会想到C++的Win32异常处理!
超级神豆的程序有以下功能:
1、处理Win32异常,防止程序崩溃;
2、获取VB错误处理程序地址,自定义错误处理程序;
3、运行汇编代码;
4、根据API函数名,调用API函数;
5、根据函数地址,调用函数。
欢迎各位下载:
http://econet.zjgsu.edu.cn/cy%5Ffilesxxx/vbsrc/vbanycall.rar
该程序类模块CVBErrCatcher有个地方需要完善一下:'读取或写入指定地址lAddr的函数ReadWriteMemory中有一句是
If VirtualQueryEx(hProcess, ByVal lpAddress, mi, Len(mi)) Then 应改成:If VirtualQueryEx(hProcess, ByVal lpAddress, mi, Len(mi))=Len(mi) Then ,
按照API定义VirtualQueryEx(hProcess, ByVal lpAddress, mi, Len(mi))与Len(mi)如果不相等,即调用失败。