54syt 发表于 2008-4-10 13:41:00

appContextNewDocument() 和 appContextOpenDocument()

我从ObjectARX 2008的 例子 docman project 拷贝了几个函数如下:
void newSyncDocHelper( void *pData)
{
    if (acDocManager->isApplicationContext()) {
      const TCHAR * fileName = (const TCHAR *)pData;
      Acad::ErrorStatus es = acDocManager->appContextNewDocument(fileName);
      assert(es == Acad::eOk);
    }
    else
      assert(0 && "\nERROR: in Document context");
}
void openSyncDocHelper( void *pData)
{
    if (acDocManager->isApplicationContext()) {
      const TCHAR * fileName = (const TCHAR *)pData;
      Acad::ErrorStatus es = acDocManager->appContextOpenDocument(fileName);
      assert(es == Acad::eOk);
    }
    else
      assert(0 && "ERROR: in Document context.");
}

openSyncDoc()
{
    static TCHAR pData[] = _T(/*NOXLATE*/"test1.dwg");
    AcApDocument* pDoc = acDocManager->curDocument();
    if (pDoc) {
      acutPrintf(_T("\nCurrently in Document context : %s, Switching to App.\n"),pDoc->fileName());
      acDocManager->executeInApplicationContext(openSyncDocHelper, (void *)pData);
    }
}
void
newSyncDoc()
{
    static TCHAR pData[] = _T(/*NOXLATE*/"acad.dwt");
    AcApDocument* pDoc = acDocManager->curDocument();
    if (pDoc) {
      acutPrintf(_T("\nCurrently in Document context : %s, Switching to App.\n"),pDoc->fileName());
      acDocManager->executeInApplicationContext(newSyncDocHelper, (void *)pData);
    }
}
当我在我的项目里面用这几个函数时, 当调用 openSyncDoc()时 acDocManager->appContextOpenDocument()是正常的返回Acad::eOK.
但调用newSyncDoc()时 acDocManager->appContextNewDocument()返回的却一直是Acad::eFilerError. 不知道是怎么回事。
Can you help me?thanks.
页: [1]
查看完整版本: appContextNewDocument() 和 appContextOpenDocument()