遇到这个问题是在前几天,在系统更新了几个补丁之后,发现Turbo Photo再也启动不了了。越是仗着自己是正版用户,给作者发信要求解决。第二天作者就回信了,balabala说了一堆不着边际的话,其实原因俺都懂。而且当天又有个windows更新,更新完就一切正常了。

今天发现Microsoft的知识库中提供了这个问题的描述和解决办法,原文在此http://support.microsoft.com/kb/935448/

全文如下:

启动计算机时某些第三方应用程序可能不会启动且您收到错误消息:“Illegal System DLL Relocation”(无效的系统 DLL 重定位)

文章编号:935448

最后修改:2007年4月13日

修订:4.0

症状

启动运行 Microsoft Windows XP Service Pack 2 的计算机时,某些第三方应用程序可能不会启动。此外,您还可能会收到下面的错误消息:

application_executable_name – Illegal System DLL Relocation
系统 DLL user32.dll 在内存中重定位。应用程序将不能正常运行。由于 DLL C:\Windows\System32\Hhctrl.ocx 占用了为 Windows 系统 DLL 保存的地址范围而产生了错误。应该与提供该 DLL 的供应商联系以得到新的 DLL。

如果安装了下列第三方应用程序,则会发生此问题:

•Realtek HD Audio Control Panel

•ElsterFormular 2006/2007

•TUGZip

•CD-Tag

如果在使用其他程序时收到类似消息,请安装该知识库文章中提到的更新。如果我们确认此问题影响了其他程序,我们将更新此 Microsoft 知识库文章以提供更多信息。

原因

安装安全更新 925902 (MS07-017) 和安全更新 928843 (MS07-008) 后会发生此问题。安全更新 928843 包含的 Hhctrl.ocx 文件与安全更新 925902 包含的 User32.dll 文件两者的基地址冲突。如果程序先加载 Hhctrl.ocx 文件后加载 User32.dll 文件就会发生此问题。

解决方案

要解决此问题,请使用下列方法之一。
注意:家庭用户应先使用方法 1。但是,如果家庭用户没有使用自动更新或 Microsoft Update 在计算机上安装安全更新 935448,则应使用方法 2。

方法 1:使用自动更新或 Microsoft Update 安装更新 935448

要打开 Microsoft Update,请访问下面的 Microsoft 网站:

http://update.microsoft.com/microsoftupdate

方法 2:从 Microsoft 下载中心安装更新 935448

可以从 Microsoft 下载中心下载以下文件:
《Illegal System DLL Relocation问题》立即下载 935448 程序包。

发布日期:2007 年 4 月 3 日
有关如何下载 Microsoft 支持文件的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

119591 (http://support.microsoft.com/kb/119591/) 如何从联机服务获取 Microsoft 支持文件

Microsoft 已对此文件进行了病毒扫描。Microsoft 使用的是该文件发布时可以获得的最新病毒检测软件。该文件存储在安全性得到增强的服务器上,以帮助防止在未经授权的情况下对其进行任何更改。