明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 10462|回复: 9

请问关于eLockViolation

[复制链接]
发表于 2004-11-12 12:09:00 | 显示全部楼层 |阅读模式
当pent->upgradeOpen();时返回 eLockViolation时应该怎么办?



对eLockViolation错误应该如何对待?
发表于 2004-11-12 12:25:00 | 显示全部楼层
我觉得这个还是要根据你的上下文环境而定。你是在什么情况下出现上面的错误的?
 楼主| 发表于 2004-11-12 12:40:00 | 显示全部楼层

回复

以前明明是这样用可以的,
AcDbEntity *pEntity;
acdbOpenAcDbEntity(pEntity, objId, AcDb::kForRead); ...
AcDbLine *pLine = (AcDbLine*)pEnt;
pLine->upgradeOpen();
pLine->erase();
pLine->close(); 这句pLine->upgradeOpen();的返回值以前没有考虑过eLockViolation, 现在我对处理后的图形(从其它dwg clone到当前文档)做同样步骤的操作,
pLine->upgradeOpen();返回值就为eLockViolation了.
 楼主| 发表于 2004-11-12 12:49:00 | 显示全部楼层

回复

我是在DockBar上通过Button调用命令的, 我查了一下,可能需要AcAxDocLock 来Lock文档.
 楼主| 发表于 2004-11-12 14:47:00 | 显示全部楼层

回复

知道了,


如果是DockControBar或modeless窗体, 在调用acdbOpenObject, acdbOpenAcDbEntity等函数时, 要在处理前


acDocManager->lockDocument(curDoc(),AcAp::kWrite,NULL,NULL,true);


调用结束后


acDocManager->unlockDocument(curDoc());
发表于 2005-4-24 13:07:00 | 显示全部楼层
太棒了,困扰了我两天的问题终于解决了。多谢楼上的回复。我是在无模式对话框中用了wblock函数,结果也是遇到了eLockViolation的错误,我都快绝望了,终于在这找到了解决办法。
发表于 2005-4-29 03:21:00 | 显示全部楼层
对于锁定文档,ARX中是这样解释的,当你要修改一个不是当前文档的数据库时,或者你要阻止别的执行文本来修改该数据库时,你需要锁定文档。如果是以只读方式打开某个对象是不用锁定文档的,但是以写方式打开对象时,最好锁定文档。
发表于 2010-8-11 16:27:00 | 显示全部楼层

當你要修改文檔內容或資料庫時需要以寫入的方式打開,需要先進行圖檔的鎖定
Dim documentLock As DocumentLock = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.LockDocument()
...
documentLock.Dispose()

若只是讀取圖檔的圖檔資訊,就不需要鎖定圖檔。

发表于 2010-8-16 22:30:00 | 显示全部楼层

关于文档的Lock,可以参阅SDK中关于Documet Context和Application Context. 在Application Context下,例如非模态对话框,属性面板(AutCAD封装的非模态对话框), COM环境,如果想对Document进行写操作就需要首先Lock这个文档,在结束的时候解锁这个文档。AutCAD在执行一个命令的时候,在命令开始执行前会自动Lock文档,这就是为什么我们在命令中不用关心Lock 文档的原因。

AcAxDocLock 最好用在COM环境中,因为这个类就是专门为COM环境编写的,在其他的环境下可以使用acDocManager->lockDocument().

发表于 2013-5-31 14:27:39 | 显示全部楼层
原来是这样子啊,学习啦
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 06:27 , Processed in 0.162059 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表