- UID
- 229961
- 积分
- 0
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2005-3-21
- 最后登录
- 1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
这是论坛里找到的打开DWG文件程序段:
void openSyncDocHelper( void *pData)
{
AcApDocument* pDoc = acDocManager->curDocument();
if (acDocManager->isApplicationContext()) {
acutPrintf("\nSucessfully Switched to App. Context\n");
acDocManager->appContextOpenDocument((const char *)pData);
acutPrintf("\nOpened a document synchronously:%s.\n", (const char *)pData);
} else
acutPrintf("\nERROR: in Document context : %s\n",pDoc->fileName());
}
void openSyncDoc()
{
static char pData[] = /*NOXLATE*/"test1.dwg";
AcApDocument* pDoc = acDocManager->curDocument();
if (pDoc) {
acutPrintf("\nCurrently in Document context : %s, Switching to App.\n",pDoc->fileName());
acDocManager->executeInApplicationContext(openSyncDocHelper, (void *)pData);
int i;
i=5;
}
}
这是我的主程序:
int open_pla()
{
openSyncDoc(); ///打开平面图
restore_pm(); //恢复数据库和图形联系
return RTNORM;
}
调用openSyncDoc();后确实打开了图形,但无法接着运行其后语句restore_pm(); 虽然可以对图形修改保存,但退出CAD时总提示:有命令在运行,请先结束再退出。调试过程中发现,程序指针运行到openSyncDocHelper( void *pData)函数末尾,但不能从executeInApplicationContext结束,根本不能运行其后语句i=5;怎样解决此问题? |
|