1,objRefBlDef:AcadBlockReference; 2,objRefBlDef:=TDoc_AutoCAD.ModelSpace.Item(i); 3,objRefBlDef.GetAttributes; 首先声明我不懂Delphi, AcadBlockReference(块参考)是一种实体类型,TDoc_AutoCAD.ModelSpace.Item(i)的返回值肯定是一个实体,但不一定是块参考类型,比如可能是Circle(源),circle 与AcadBlockReference不能转换,所以objRefBlDef:=TDoc_AutoCAD.ModelSpace.Item(i);若不报错则objRefBlDef的值应该为空,相当于C#的null,也可能根本没有返回值因而objRefBlDef还只是声明而已,即没有初始化,3,objRefBlDef.GetAttributes;行访问没有初始化的变量,故有'Access violation at address 7875512 in module这类的报错,我估计是变量没有初始化而导致内存方面的问题,再次声明,我不懂Delphi,上面的话是瞎猜而已! |