【发布时间】:2015-02-18 17:57:57
【问题描述】:
我正在编写一个插件来尽可能多地从 CAD 中提取数据。我现在遇到的主要问题是当我尝试访问 StartPoint.X 时,例如,脚本失败而没有捕获异常,“致命错误:d8e176b4h 处未处理的访问冲突读取 0xffffffff”。根据我尝试访问的内容,内存位置和第二个数字的变化。示例:
foreach (Objects o in globalListOfObjs)
{
string type = o.obj.GetType().ToString().Split('.').Last();
if (type == "Line")
{
try
{
Line l = (Line)o.obj;
if (l != null)
{
MessageBox.Show("Not Null!");
MessageBox.Show(l.StartPoint.X.ToString());
}
//listOfLines.Add(new LinkLines(lx1, ly1, lx2, ly2, Guid.NewGuid()));
}
catch (System.Exception ex)
{
MessageBox.Show(ex.Message);
MessageBox.Show(ex.StackTrace);
}
}
}
【问题讨论】:
-
你检查
o.obj.GetType().ToString().Split('.').Last();了吗?可能某些数据出了问题。 -
我已经取出了 l.startpoint.X,它会一直运行。我不知道它是否希望我解冻图层或将 obj 设置为可读或其他什么以便阅读?
-
您需要打开一个事务,然后打开行对象(用于读取或写入),然后才能看到 StartPoint 值。
-
我将对象从一个打开的事务中拉到一个列表中,然后访问它们。这可能是原因吗? @JamesDowthwaite
-
尝试锁定文档
using(var docloc = doc.LockDocument ())。把它放在你的 foreach 上面
标签: c# fatal-error autocad autocad-plugin