最近一位朋友的电脑上Windows 7在运行程序时经常出现错误提示:

C:\Windows\system32\MFC42u.dll没有被指定在Windows上运行,或者它包含错误。尝试使用原始安装媒体重新安装程序,或者联系您的系统管理员或软件供应商以获取支持。

C:\Windows\system32\MFC42u.dll没有被指定在Windows上运行?_出错提示

用FileInfo提取C:\Windows\system32\MFC42u.dll的信息如下:

文件说明符 : C:\Windows\system32\MFC42u.dll
属性 : A---
数字签名:否
PE文件:否
创建时间 : 2013-6-21 15:51:45
修改时间 : 2011-3-11 13:33:59
大小 : 1164288 字节 1.113 MB
MD5 : 552e2b83d9066cefb6624b0896d5e8c2
SHA1: 20964EBD37D139A5304D363E20A6BB13B719CF30
CRC32: 604f7e4f


居然不是PE文件?

右击文件,查看属性:

C:\Windows\system32\MFC42u.dll没有被指定在Windows上运行?_win7_02

 

雷!用16位编辑程序打开MFC42u.dll一看,里面全是0。

 

电脑中没有保存以前的版本,没法恢复。从其它使用win 7的电脑中复制了MFC42u.dll,准备进行替换。

Windows 7里的系统文件不能像win xp那样随意改名,所以操作起来麻烦一些。

最快的方法是:右击MFC42u.dll,从弹出的菜单中选择“管理员取得所有权”。

如果右键菜单中没有“管理员取得所有权”这一项,你可以复制以下内容:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\runas]
@="管理员取得所有权"
"NoWorkingDirectory"=""
[HKEY_CLASSES_ROOT\*\shell\runas\command]
@="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F"
[HKEY_CLASSES_ROOT\exefile\shell\runas2]
@="管理员取得所有权"
"NoWorkingDirectory"=""
[HKEY_CLASSES_ROOT\exefile\shell\runas2\command]
@="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F"
[HKEY_CLASSES_ROOT\Directory\shell\runas]
@="管理员取得所有权"
"NoWorkingDirectory"=""
[HKEY_CLASSES_ROOT\Directory\shell\runas\command]
@="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant administrators:F /t"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant administrators:F /t"


粘贴到记事本,保存为"权限获得.reg",双击运行后,再右击文件就会出“管理员取得所有权”了。

取得对MFC42u.dll的所有权后,就可以把它改名了,再把其它win 7电脑中好的MFC42u.dll复制粘贴进来。