?々〈宋牡到馐土烁髦指餮?的在AutoCAD R14中出现“致命错误: Unhandled Access Violation Exception”的原因,及一些修复损坏图形的方法。5 x7 |8 B: N' {+ G7 o5 q5 p2 `' g
# R3 i( m+ q h+ k 一、概述:' W' E, Y f1 ^5 H% a4 W% q
当AutoCAD正在运行时,有许多原因会导致出现“Unhandled Access Violation Exception”错误。此文档详细解释了所有已知的导致此错误的原因,讨论当不知原因时解决问题的技巧,并解释当是损坏的文件导致此错误时,如何修复此损坏文件。
& [/ N" |- ^5 f. M注释:可以在Microsoft的知识库站点(www.microsof.com)上获得更多的关于“Unhandled Access Violationi Exception”出错的信息。那里的信息可以帮助诊断和解决由一些其它已知原因导致的此错误,例如,不兼容的显示驱动程序,网络驱动程序,或其它的软件/硬件的冲突等。! j% n, i7 O/ [9 G! w- U
) j" z) ?$ I. N @9 s5 ~% [
二、当正在运行AutoCAD时出现此错误的一些已知原因
" d4 H+ E+ w, K( Y$ z% t- B" I5 o 这部分列出了当AutoCAD正在运行时一些已知的导致此错误的原因。
$ k0 F+ M; b$ b" C
* h7 w6 [3 L7 M( p! X5 K (一)当打开一个包括被LENGTHEN命令修改过的轻装多义线或椭圆实体的图形时,就会导致出现此错误
7 s7 U. O$ l% C 当这个图形被打开时,下面列出的错误信息中的一种就会被显示出来。
* @& Q! N5 \& X: B) h% y6 y1 q0 E6 M 致命错误:Unhandled Access Violation Exception at 418520h1 \5 e/ W1 m% ]7 N/ Z% A9 H
致命错误:Unhandled Access Violation Exception at 418952h & h3 Y6 [3 s! D, M0 @2 H
致命错误:Unhandled Access Violation Exception at 418950h
7 i* B: m2 B/ c 致命错误:Unhandled Access Violation Exception at 94e3b0h
; K Z+ `5 ]8 U, s8 X5 |% w 当打开包含由LWPLINE和ELLIPSE命令生成的实体,并且这些实体曾经由LENGTHEN命令修改过的图形时就会发生此错误。注释:修改了这些实体后,在关闭此图形前必须先存盘。 4 t; j2 j, h j! T
如果怀疑就是此原因导致了上述错误,可以通过建立新图形(用“缺省设置”选项)并用DDInsert命令插入并打散问题图的方式来解决此问题。 1 V Z |7 y( d3 K/ w, Z
插入一个新的缺省设置图形可以消除并重新进行环境设置。如果此错误仍然存在,建议用一个模板重新插入此图形。
0 _6 |7 j& {' R8 M7 U" I! L4 s7 A9 B1 c1 q9 L& K# G& I4 u
(二)如果存在修改过的acad.fmp文件,当在R14中打开一个R12的图形时会出现此错误
* Q3 R6 N# b, W z9 Q0 ~5 y 当在AutoCAD R14中打开一个R12的图形时,会出现下面错误中的一种:
w0 K! z8 d- e; d( k8 S 致命错误:Unhandled Access Violation Exception @4065b5h . n5 x0 Z0 T" O- g% n8 A6 O
致命错误:Unhandled Access Violation Exception @406575h
) T# f9 R/ m1 _$ R r! V 出现这些错误的原因是因为存在修改过的或用户化过的acad.fmp文件。使用缺省的acad.fmp文件就可以解决这个问题,这个文件可以在AutoCAD R14的光盘上的SUPPORT目录中找到。
9 d$ d: `, ?2 x$ g3 E- \
1 p3 ^: k2 H- t (三)当打开一个包含重复句柄的R12的图形时会出现此错误
- r7 ~2 _) J& o) ~$ R! H 在AutoCAD R14中打开R12的图形时,有时会随机地出现下面错误: B% g) z$ A6 A1 S% @. G6 H8 i6 i
致命错误:Unhandled Access Violation Exception at 418520h& c' G i/ p4 p. T- ^
在这种情况下,出现此错误是因为在R12的图形中包含重复的句柄,导致AutoCAD R14不能转换此图形为R14的格式。 ( j+ L& G) Q4 w& [2 @
要解决这个问题应在R12中打开此图形并用HANDLES命令破坏掉图形句柄。或在R13中打开并保存此图形,然后再在R14中打开。5 E" q- b2 T* }5 O
( G2 b8 n7 g. \- n (四)双CPU会导致出现此错误
7 F8 D! P" ^2 P9 I" a6 X" t 当在有双CPU或虽只有单CPU但能兼容双CPU的计算机上初始化安装后,在AutoCAD R14中会出现下面错误:
2 }) b- y1 T' T( \4 m. D 致命错误: Unhandled Access Violation Exception Error @467249h7 Q5 A) p* Z+ y# D
AutoCAD 能够运行,但在显示启动向导之前会出现此错误。
2 A1 f! X3 H9 t! `& u) W0 j$ u AutoCAD 可以运行并能打开一个图形,然而,在关闭此图形时出现此错误。 * v* Z' e' }- O- m% A
当在图形中曾经用过MTEXT命令时,会出现此错误。 1 T+ W* Z. m6 u* x
在双CPU计算机上出现此错误是因为双路和单路处理器计算机的方式和MTEXT命令的多线程特性是相互影响的。要解决此问题可以在Autodesk公司的站点上下载名为mtalctrl.exe的修补程序,此站址为:
9 f& I% G+ ~& \" g9 U http://www.autodesk.com/support/filelib/acad14.htm。
! } v8 {0 ^( a! A/ D1 _5 n5 H9 z% u8 D: B; q
(五)当用交点的方式在一个line实体和一个xline实体间进行捕捉时会出现此错误3 C- [/ k, i2 [
这个错误会发生在有厚度值的line和一个xline相交时的特定情况。如果用交点捕捉方式生成直线,当拖动光标到这种交点的上方时,下面的错误之一就会出现:
4 {$ e- Y* W. |# ?' _1 q& s 致命错误:Unhandled Access Violation Exception Error at 426dech
' x& |7 Q* C/ U& D 致命错误:Unhandled Access Violation Exception Error at 426e1ch; f) D( Y3 A; t4 e
当下一次在AutoCAD中打开时,此图形会被自动修复。: ^) [! c, P2 t, s$ M# n
& u" o: Z3 D/ o (六)在Windows的“打印机”组中删除了 Phantom 打印机 ! j' n/ b4 t" j5 @) x! S# t# f
如果在Windows的“打印机”组中修改或删除了Phantom打印机,在下一次启动AutoCAD后就会出现下面错误: 8 m( {( h5 X" L; R9 `! r, |* ?
致命错误: Unhandled Access Violation Exception @ (hex address).( r8 Q& F- S! H7 n3 u, _ N% q
建立Phantom打印机的目的是为了当用AutoCAD ADI驱动程序时可以打印OLE物体。这是R14的一个新功能。Phantom打印机是不应该被删除或修改的。 # P/ N) S1 [ x. ^3 }- o% Y! w! w
如果Phantom打印机已经被修改或删除了,运行AutoCAD的安装程序,并选择“添加(Add)”选项。然后在列表中选中“OLE/ADI 打印机”复选框。确保要重新启动计算机。(在表中的其它组件都可以不选)2 n+ @4 z1 O8 H. N3 w. A
0 ?% o6 y. W* Q: V
三、一些和AutoCAD无关的特殊问题
1 j9 p/ q4 b" R8 d! J (一)Cyrix 芯片 - x" v# t4 k, w& N7 N1 X# d3 A
如果Cyrix芯片或装着Cyrix芯片的主机板有高速缓存问题,在AutoCAD中就会出现“Unhandled Access”错误。值得注意的是这种错误信息中的16位地址是不同的(参见下行): , Y# c2 ?# \1 {; o3 p8 r* D
致命错误: Unhandled Access Violation Exception at a931ce0h/ j3 n& L: O5 v: o9 o7 Q
为了测试是否由高速缓存问题导致的此错误,Autodesk公司建议关掉主板上的芯片高速缓存功能。如果这样做后问题就不存在了,请和Cyrix公司直接联系,他们的网址和电话号码分别为http://www.cyrix.com/ ;和 1-800-462-9749。
/ `* _& I2 O/ L& M$ O/ n1 ]注释:可以用同样的办法检测Intel计算机上的Intel处理器或主机板的问题。 $ C7 X# w6 T, ]
(二)Elsa Gloria Synergy 显示配置 ' G: m3 o2 T7 J4 t' l7 A
当Elsa Gloria Synergy显示配置包括Power View 3D功能时,并在AutoCAD中打开一张图形时,就会间歇性地出现下面或与其相似的错误:
+ U/ P& u9 _8 R& Q' U 致命错误: Unhandled Access Violation Exception @ 1e012624h0 S& x6 @; V% E8 @; s# @8 j
在控制面板中选中 Elsa Gloria Synergy 显示配置的 Uninstalling the Power View 特征,即可解决此问题。 : H: T7 Q6 m9 t9 h
到Elsa的站点上可以下载更新的驱动程序http://www.elsa.de/)。8 h) B# Z' F0 |" `+ D* j7 W
注释:其它的图形卡和其增强的应用程序也会导致此错误。这些应用程序可以在某种工具栏或启动组中自动运行。和显示卡的制造商联系可以获得他们提供的驱动程序的更多信息。
5 g8 R& m- B4 }- g (三)坏的或不兼容的内存
& ?) j2 A5 e9 r- M, o0 k" P 据汇报曾经有几个问题是由把内存条由fastpage替换成EDO后解决的。下面就是这种问题出错信息的一个例子:
! j9 |! k! I0 `. I" X" h) r1 \; ~ 致命错误: Unhandled Access Violation Exception at 33404fcbh3 P) q) Y" Z6 p
) ]; i$ {' O: y) A# O x (四)在Windows 95的计算机上安装了Adobe TM
) n" L! e0 [8 v# l) t$ o 下面错误是发生在启动AutoCAD R14且打开一个新图形后。除此之外,硬盘会停止工作且导致Windwos 95死锁。另外当重新启动AutoCAD R14后也会导致此错误:
6 K4 c1 b4 W' [- U- g S h. ?: w 致命错误:Unhandled Access Violation Exception at bff78053h
* `4 B: m7 ` D. F# X6 A; v& ]6 b8 q& m 如果在Windows 95上安装了Adobe TM,有可能出现下面出错现象,请检查下表各项来确定错误是否由Adove TM引起的:
5 E, N! @( X* Z6 q% b( S3 g6 H- z 当用安全方式启动计算机后AutoCAD R14就不会死锁了。
9 K% N$ F1 A, o5 L 当死锁后不得不关闭和打开电源来重新启动计算机。 5 `- t. a! L4 N9 \: e
重启动计算机后,“Unhandled Access Violation Exception”错误也许还会发生。 0 p, |0 I5 z( ^9 d+ C
一旦这个错误发生了,就不能删除安装AutoCAD R14了。 ) O! ], u/ N+ N
如果已经确认是由Adobe TM引起的错误,请按下面步骤进行操作:
2 j- A2 v8 s; y& E& p4 @ 用记事本打开Windows的system.ini文件,把光标移到一行的开始,该行内容为:system.drv=atmsys.drv
) m' ~4 Z3 G- v% P% m6 d 在此行的开始输入一撇号(')使此行成为一注释行。
6 J0 i' _% l' p7 t 加入下面一行: system.drv=system.drv & ?* T( {1 [7 r2 z
存储文件并退出记事本。
$ V9 s& |6 {! n( ^7 {! a9 [ [ 重新启动Windows。
3 N$ G$ C4 W( P& }! Z- }( [ 在Adobe的网址http://www.adobe.com/)上列出了一些可以和其它驱动程序共同工作的配置。要得到详细信息,到他们的站点上点取“Search”按钮、选中“Tech Support Documents Only”复选框、寻找“7133”,然后选择名为“ATM References in the system.ini file”的技术文档。
2 w1 W3 J( Q, t6 j% k" P! x, x. S, r* {8 U7 r- T# e
四、诊断其它导致此错误的原因来排除系统故障
# N3 B( i; w! Z, Y; N$ q 如果此文档前面列出的原因还不能解释为什麽会出现此致命错误,就应该考虑和此错误相关的一些其它问题,例如,不兼容的显示、定点或打印驱动程序,正在运行的应用程序在内存中的冲突,或者计算机上设置了不正确的时间和日期。 3 J) n _' Z# M8 T/ _
这些原因主要包括 (并不局限于此):5 C+ s# L# t: f8 X. q: h/ ?+ P
过时版本的Wintab数字化仪驱动程序 5 J' k4 l, C; U7 D _: \: y7 U
过时版本的鼠标驱动程序
; t; C" W/ B. @; N 过时版本的或不兼容的图形卡显示驱动程序 2 p9 n+ C- G) A% r* f' E$ Z4 X; b! J
扫描病毒软件 ; R- D% `2 r" }
非VCPI 的兼容内存管理程序 0 k# r+ t* }3 f+ `
毁坏了的AutoCAD图形(参见“图形修复技术”部分)
7 `5 O$ b" v) B6 [' p1 H3 S- X* i 建议用排除故障的方法来检查是否是上述特定原因导致的此错误,这就需要用最小配置方式启动系统来诊断是否有不兼容的驱动程序存在。参考技术文档TD101848:Clean Booting for System Troubleshooting(用最小配置启动系统进行故障排除) 可以获得关于此方法的完整描述。. M% p: b( J( b
& u7 \( w- ~# t3 `8 v0 i
五、图形修复技术
- F% [9 E" F( h( Y 如果怀疑是图形损坏导致的出现此错误,请考虑这里列出的每一个的图形修复技术,以便于确定那种方法更合适使用。! V# K1 K9 |) @$ h, B2 r
3 c4 Y0 l E! Y& j6 ~ (一)修复前的注意事项 ; k7 O% O9 @' _' n; H
在进行图形修复前,强烈建议进行下面几步操作:
+ G8 s6 P/ V; t' W 把图形拷贝到可靠的存储介质上。例如,如果怀疑硬盘有坏道,则或者拷贝此文件到另一硬盘或软盘上,或者拷贝到磁带上。最好用复制的文件进行修复,因为这里有几种修复的方法,每一种方法都要用不同的方式改变这个文件。另外,最好用原始文件的拷贝进行尝试,因为即使AutoCAD还不能打开它,但图形却已经被改变了。
8 s9 g$ M6 V3 a! q9 B 最好对和损坏文件有关的.BAK文件进行备份。因为如果打开一个已经存储了的损坏文件而这个文件并没有被完全修复,这时好的.BAK文件就会被一个坏的.BAK文件覆盖。% ~/ {# Y- b9 ]' b( T$ K7 L- f
# @% K, h) Z" w, L6 i
(二)AutoCAD 的 RECOVER 命令
7 H/ L- w, X J 要用RECOVER命令进行图形修复,首先启动AutoCAD并用缺省配置打开一张新图,然后用OPEN命令打开这个图形。如果AutoCAD检测到了这是个损坏的文件,就会有一条图形被损坏的信息被显示出来。AutoCAD会提示用RECOVER命令打开图形并显示按“Y”键继续进行的信息。如果继续进行,AutoCAD会扫描整个图形数据库来检测并排除错误。 ! B: N% o6 G, B& l
如果RECOVER命令不能修复图形,AutoCAD会显示几条信息中的一条来表明这个图形文件不能被修复。如果图形已经严重损坏,修复过程会死锁并导致退出AutoCAD。这种情况发生后,需要重新启动计算机并尝试另一种修复方法。 9 h- [* J. u/ I( v& q
如果用RECOVER命令能够打开图形,紧跟着应该用AUDIT命令。因为图形中可能包含不能被RECOVER命令排除的“嵌套”损坏,这种情况下应该用一次或几次AUDIT命令修复此故障。- ]) Z7 P3 T6 E/ h
7 M. d' D5 y' o2 K& I Z (三)用Insert 命令修复图形 4 L+ A; m' p9 X: T, r- J
有时用Insert命令是可以修复损坏了的图形的。如果用RECOVER命令不能成功地打开一个图形,可以把此图形插入到另一个图形中,就像插入了一个外部引用块。下面解释的就是如何这麽做: & F% T' C& w. N1 V& k
启动 AutoCAD,并用缺省配置打开一个新图。
8 t5 U( A( s* L r 在命令行上输入DDInsert 来显示“插入”对话框,或点取下拉菜单“插入”“块”命令。
7 G. w- f- P9 r0 X& Y1 R 点取“文件”按钮,并在“选择图形文件”对话框中选择这个损坏了的文件。 8 d. g8 T/ i; F5 |
清除“在屏幕上指定参数”复选框,并选中“分解”复选框。
, |( G9 U$ ?6 y: w5 S/ R. d 在“插入”对话框中点取“确定”按钮。
; \# ?: c, ]' I& b: n- B7 t5 y0 j AutoCAD 会试着插入并炸散损坏的文件。如果成功地插入了图形,就按上节“AutoCAD RECOVER命令”描述的那样用AUDIT命令进行修复。) K0 |8 a5 k0 a4 ]! y
3 u: y$ ?) S' q9 @ (四)另存为R13格式并重新打开
* X7 B9 j3 M# W# [ z2 }" t) { 如果可以打开一个图形,但是会出现一些已经被损坏了的信息,或者在此图形上工作了很短的时间后会有错误出现,这时就可以把此图形另存为R13格式,并在R14中重新打开这个图形。使用这种方法时最好把此图形插入在用“缺省设置”打开的新图中,这样可以保留很多环境设置。
& o1 r1 `% l0 S5 B, k9 L0 G, `2 M$ \9 Y( X
3 X2 V6 H' C% E, P/ L! t
(五)用DXFOUT 和 DXFIN 命令进行图形修复 1 ?4 U0 K# I9 ?8 r. ^
AutoCAD 包含了一个转换器可以把DWG文件转换成DXF文件。可以用此转换来进行毁坏了的图形修复。需要注意的是这个DXF转换器并不是设计用来进行图形修复的,因此如果图形中包含着许多毁坏了的数据它就不能工作了。另外,在DXF转换过程中出现的警告信息和图形修复是没有关系的。
% {5 v7 T+ e1 P* A1 ~, }( u 要用DXF转换修复图形文件,就需要在AutoCAD中打开此文件并立即取消掉在打开图形时进行的图形重新生成过程,做到这步后就把图形转换成一个DXF文件了。然后或者重新把DXF文件再转换成DWG文件或者可以通过利用一个诸如微软的“记事本”之类的文本编辑器手动修复这个DXF文件。 & L8 u% r/ l/ E" h
1. 启动AutoCAD。从“文件(FILE)”下拉菜单下选择“打开(OPEN)”命令,或在命令行上输入“OPEN”。
% z" {8 V, W0 E0 @ 2. 在文件对话框中选择并打开一个要修复的文件。
- r) J% ^5 }6 @. j& u 3. 点取“确定(OK)”按钮,然后立即按Escape键来取消当前命令。
; y6 S3 M h+ G+ v& C$ s9 T+ d6 J, O注释:可以用同样的方法利用IGES转换器进行图形修复。# N4 z1 c: |. Z
4. 这个过程可以取消最初的对图形的重新生成。如果这个图形可以被打开,在AutoCAD中就会出现“命令(command)”提示。(这个操作可以用一个正常的图形进行练习。)" {8 N4 J4 h" ^, Q6 V
5. 输入DXFOUT命令,在确定完文件名和精度等级后就开始进行转换。要想获得关于DXF转换的更多信息,请参考AutoCAD用户手册的第14章。 & ]7 F5 O1 l* Q9 k1 j2 j6 p2 q- b3 N% t
6. DXF文件生成后,在AutoCAD中打开一个新图,然后用DXFIN命令重新输入此图形,这个图形文件就又被转换成了AutoCAD的DWG文件了。 ) p, y5 ?: B+ {% E. a9 ]- s
如果这个DXFIN过程失败了,可以用ASCII文本编辑器浏览和编辑此DXF文件。参考AutoCAD用户化手册可以得到关于DXF文件结构和内容的详细描述。5 w* p9 Y2 K" }$ I
! m* [: k1 J" j0 \; t, s[ 本帖最后由 郑桂锐 于 2007-5-26 23:03 编辑 ] |