DLL害死人

前几天系统出了一个莫名其妙的故障,我安装的小说下载阅读器突然不能用了。具体的症状为,启动后提示出错,内容为“应用程序错误,该内存不能为"read"”(这个错误估计是 Windows 系统里最最神秘的错误了,你从这个提示里什么有用信息也得不到)。

为什么呢?我还真看不出来为什么。用 Filemon 和 Regmon 看了看程序访问的文件,摸不出什么门道。把这个程序复制到另一台机器,能用,排除了程序本身损坏的问题。重装了一遍这个程序,还是不行。由于实在想不出问题在哪,只有搁置起来,反正这个软件不用也死不了人……

直到今天,我要用财智家庭理财这个软件记账,结果也启动不了了,这次的错误提示还算有点用,问题出在“msado15.dll”这个文件上。查了一下,这个文件是微软 DAO(或者 ADO,我也搞不清有什么区别)的文件,我找了一个有点古老的 MS data access components 2.1 安装了一下,还是不行。

我有点恼怒,于是搞了下 CHKDSK,然后又重启了机器。之后我又想起来,这个文件大概在 Windows XP 的安装盘里有,找了一下,果然有个“msado15.dl_”文件,拿出来解压缩然后覆盖到那里,运行程序,成功,哦也。

不过,我现在还是没搞懂,到底是装的古老软件起了作用,还是 CHKDSK 抑或从安装光盘里找的替换文件起作用,总之应该就是这个 DLL 的问题没错了。