wangdong79 发表于 2004-7-4 22:42:00

为何不能以写的模式打开实体?

我有一个这样的问题需要请同仁,需要帮助。
在我的程序中的某一个函数书中调用了如下函数:
acdbOpenObject(p_Entity,m_shitiId,AcDb::kForWrite,Adesk::kFalse);
但是返回的值却是eLockViolation,使得我在调用这个函数后的代码中对 p_Entity 的写操作失败。我只能将上面的函数改成如下的形式
acdbOpenObject(p_Entity,m_shitiId,AcDb::kForRead,Adesk::kFalse);
返回值虽然是eOk,但是这种形式同样不得对实体进行写操作。
我该如何做是好呢?
愿得到同仁提示和帮助。谢谢

easypower 发表于 2004-7-5 09:24:00

你把你的文档锁定.

dipenghao 发表于 2004-7-6 08:31:00

打开实体模式下,不要进行输入输出操作,有时候会影响

wangdong79 发表于 2004-7-7 21:21:00

在我的程序中的某一个函数书中调用了如下函数:acdbOpenObject(p_Entity,m_shitiId,AcDb::kForWrite,Adesk::kFalse);但是返回的值却是eLockViolation,使得我在调用这个函数后的代码中对 p_Entity 的写操作失败。我只能将上面的函数改成如下的形式acdbOpenObject(p_Entity,m_shitiId,AcDb::kForRead,Adesk::kFalse);返回值虽然是eOk,但是这种形式同样不得对实体进行写操作。
easypower讲把文档锁定,那么如何锁定文档呢?请easypower指教

zhubohobby 发表于 2004-8-4 18:06:00

不能够写打开,一定是在前面已经将对象打开了没关闭,用读打开能顺利打开是因为对象在以通知或读打开后还能再以读形式打开(最多可读打开256次)。
既然你是读打开,当然只能读不能写了,这还有疑问吗?
建议检查前面打开对象的代码,使用完毕后关闭,或者不关闭而在该处升级为写打开,p_Entity->upgradeOpen();然后就可以做写操作了。

zfbj 发表于 2004-8-26 09:39:00

锁定和打开文档的方法:
acDocManager->lockDocument(curDoc(), AcAp::kWrite);
// 你要执行的操作
        acDocManager->unlockDocument(curDoc());
页: [1]
查看完整版本: 为何不能以写的模式打开实体?