找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 358|回复: 0

[ARX函数]:与打开DWG文件有关,大家帮忙看看程序有什么错?

[复制链接]
发表于 2005-3-22 08:48:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
这是论坛里找到的打开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;怎样解决此问题?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-15 18:16 , Processed in 0.180291 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表