|
|
容错库范例
几个星期前写了一个容促处理的动态链接库(其实可以编译成静态的)
平时写程序(特别是用汇编),遇到调用系统API。总会有不成功的时候。
每次不成功,都要在后面加上一段处理的代码,十分麻烦。
于是冒出了开发容错库的想法。
随手写了一个功能比较简单的:
1、遇到错误显示出错地址,错误号,错误号表示的错误,以及开发(调试)者的提示.
2、调用开发者定义的容错函数(如果开发者给出)
3、询问用户继续运行还是终止该进程。
================================================================================================
自从本菜鸟开发了这款动态连接库后,写任何windows的“技术”程序都离不开这个库。花了时间维护这个库确实是值得的。
编译的时候没有合并sections,使得体积稍稍大了点。由兴趣可以重新编译一下代码,将区段合并,体积估计可以达到2K左右。砍掉DOS头部(我曾经写过个软件砍DOS头的)则更小了。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
调用细节:
动态库输出仅1个函数:
__stdcall WCheckError(LPTSTR,DWORD);
函数的第一个参数是作者对于错误的说明、解释(将显示在容错对话框中)
第二个参数是个 long __cdecl* 类型的回调函数指针。函数指针的唯一参数代表错误码(GetLastError返回码)。由于是__cdecl,也可以当作不带参数使用。该函数的返回值若为0,则不显示容错对话框;非0则显示容错窗口。
如果还不明白可以看看附带的代码例子
=======================
不知道是否有前辈写过这种库,互相交流一下经验。
源码下载:
|
|