errBoy 发表于 2005-11-28 18:01:00

关于怎样删除一个DWG文件

<P>void OpenDoc( void *pData);</P>
<P>int COpDwg_OpenOtherDwg(CString strNewFileName)<BR>{<BR>&nbsp;SErrorInfo&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;errInfo;<BR>&nbsp;struct resbuf&nbsp;&nbsp;&nbsp;&nbsp;resSysVal;<BR>&nbsp;bool&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bTmp;<BR>&nbsp;AcApDocument*&nbsp;&nbsp;&nbsp;&nbsp;pDoc;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</P>
<P>&nbsp;try<BR>&nbsp;{<BR>&nbsp;&nbsp;//Early work<BR>&nbsp;&nbsp;errInfo.strCallFuncName = "COpDwg_OpenOtherDwg";<BR>&nbsp;<BR>&nbsp;&nbsp;strNewFileName.TrimLeft();<BR>&nbsp;&nbsp;strNewFileName.TrimRight();<BR>&nbsp;&nbsp;//システム変数初期设定(SDI)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CSysDa_InitThisVal("SDI",false,resSysVal);<BR>&nbsp;&nbsp;//一时的にMDIモードに设定する(SDIモードだとファイルをオープンする际に例外発生)<BR>&nbsp;&nbsp;CSysDa_SetSysValue(0, true, bTmp);</P>
<P>&nbsp;&nbsp;pDoc = acDocManager-&gt;curDocument(); <BR>&nbsp;&nbsp;&nbsp; &nbsp;acDocManager-&gt;activateDocument(pDoc, Adesk::kTrue);&nbsp;<BR>&nbsp;&nbsp;if(bSave == true)<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;acDocManager-&gt;sendStringToExecute( pDoc, "(vl-load-com)(vl-cmdf \"vbastmt\" (strcat \"ThisDrawing.Close True\"))\n",<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; false, true);</P>
<P>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;else<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;acDocManager-&gt;sendStringToExecute( pDoc, "(vl-load-com)(vl-cmdf \"vbastmt\" (strcat \"ThisDrawing.Close False\"))\n",<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; false, true);</P>
<P>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;pDoc = NULL;<BR>&nbsp;&nbsp;pDoc = acDocManager-&gt;curDocument(); <BR>&nbsp;&nbsp;&nbsp; &nbsp;acDocManager-&gt;activateDocument(pDoc, Adesk::kTrue);&nbsp;<BR>&nbsp;&nbsp;acDocManager-&gt;executeInApplicationContext(OpenDoc, (void *)(LPSTR)(LPCTSTR)strNewFileName);<BR>&nbsp;&nbsp;return RTN_TRUE;<BR>&nbsp;}<BR>&nbsp;catch(...)<BR>&nbsp;{<BR>&nbsp;&nbsp;errInfo.strErrMsg = ERR_MSG_EXCEPTION;<BR>&nbsp;&nbsp;goto SystemError;<BR>&nbsp;}</P>
<P>SystemError:<BR>&nbsp;CError_WriteErrlog(errInfo);<BR>&nbsp;return RTN_SYSERR;&nbsp;<BR>}</P>
<P>void OpenDoc( void *pData)<BR>{<BR>&nbsp;AcApDocument* pDoc = acDocManager-&gt;curDocument();</P>
<P>&nbsp;if (acDocManager-&gt;isApplicationContext()) <BR>&nbsp;{<BR>&nbsp;&nbsp;acDocManager-&gt;appContextOpenDocument((const char *)pData);<BR>&nbsp;} <BR>&nbsp;else<BR>&nbsp;{<BR>&nbsp;&nbsp;acutPrintf("\nERROR To Open Doc!\n");<BR>&nbsp;}<BR>}</P>
<P>憋了这么多天终于有了点眉目,这段代码想要实现的功能是:将当前活动文件删除,并以strNewFileName路径名打开一个文件.现在在执行了sendStringToExecute后,再执行executeInApplicationContext,就会出现异常,我很不理解,还请哪位高手多多指点一下呀</P>
页: [1]
查看完整版本: 关于怎样删除一个DWG文件