请教各位高手
<P>我是初学者,最近碰到一个问题,在读dwg文件时,</P><P>dwgpath="D:\\Drawing1.dwg";</P>
<P> AcDbDatabase *pNewDb =new AcDbDatabase(Adesk::kFalse); <BR> int es=pNewDb->readDwgFile(dwgpath , _SH_DENYNO,false); <BR> if (es!=Acad::eOk) <BR> { <BR> acutPrintf("\nThe file %s cannot be opend",dwgpath); <BR> return; <BR> } </P>
<P>es总是不等于Acad::eOk,值是320;不知道为什么,在别的程序里可以运行,很奇怪。</P>
<P>这里我是在一个双击对话框的消息函数里调用这些语句的,请教各位!</P> <P>调试检查一下是不是这个文件已经被打开了?</P>
<P>捕捉一下es返回值是什么就知道是什么问题了</P> 谢谢pool兄,es的返回值是eLockViolation, 大概是内存锁定的意思吧,请教为什么会这样,怎样解决啊?谢谢! <P>看了王斑竹几年前的一个帖子,问题解决了,谢谢各位!方法如下:</P>
<P>如果是DockControBar或modeless窗体, 在调用acdbOpenObject, acdbOpenAcDbEntity等函数时, 要在处理前</P>
<P>acDocManager->lockDocument(curDoc(),AcAp::kWrite,NULL,NULL,true);</P>
<P>调用结束后</P>
<P>acDocManager->unlockDocument(curDoc());</P>
页:
[1]