找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 475|回复: 2

[其他]:[求助]不明白

[复制链接]
发表于 2003-6-13 23:00:39 | 显示全部楼层 |阅读模式

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

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

×
为什么在delete pDb时,会出现错误?


  1. void MFCTest()
  2. {

  3.    AcDbDatabase *pDb = new AcDbDatabase(Adesk::kFalse);

  4.     pDb->readDwgFile("test1.dwg");

  5.     AcDbBlockTable *pBlkTbl;
  6.     pDb->getBlockTable(pBlkTbl, AcDb::kForRead);

  7.     AcDbBlockTableRecord *pBlkTblRcd;
  8.     pBlkTbl->getAt(ACDB_MODEL_SPACE, pBlkTblRcd,
  9.         AcDb::kForRead);
  10.     pBlkTbl->close();

  11.     AcDbBlockTableRecordIterator *pBlkTblRcdItr;
  12.     pBlkTblRcd->newIterator(pBlkTblRcdItr);

  13.     AcDbEntity *pEnt;
  14.     for (pBlkTblRcdItr->start(); !pBlkTblRcdItr->done();
  15.         pBlkTblRcdItr->step())
  16.     {
  17.         pBlkTblRcdItr->getEntity(pEnt,
  18.             AcDb::kForRead);
  19.         ads_printf("classname: %s\n",
  20.             (pEnt->isA())->name());
  21.         pEnt->close();
  22.     }
  23.     pBlkTblRcd->close();
  24.     delete pBlkTblRcdItr;
  25.         delete pDb;
  26. }

  27. void initApp()
  28. {
  29.   InitMFC();
  30.   acedRegCmds->addCommand( "MFCStatic", "INSGZW", "test",
  31.                                   ACRX_CMD_MODAL, &MFCTest );
  32. }

  33. void unloadApp()
  34. {
  35.   // Remove the command group because we are unloading
  36.   //
  37.   acedRegCmds->removeGroup( "MFCStatic" );

  38.   // fin MFC
  39.   EndMFC();
  40. }

  41. //////////////////////////////////////////////////////////////
  42. //
  43. // Entry point
  44. //
  45. //////////////////////////////////////////////////////////////


  46. extern "C" AcRx::AppRetCode
  47. acrxEntryPoint(AcRx::AppMsgCode msg, void* pkt)
  48. {
  49.     switch (msg) {
  50.     case AcRx::kInitAppMsg:
  51.         acrxDynamicLinker->unlockApplication(pkt);
  52.         initApp();
  53.         break;
  54.     case AcRx::kUnloadAppMsg:
  55.         unloadApp();
  56.     }
  57.     return AcRx::kRetOK;
  58. }
复制代码
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 145个

财富等级: 日进斗金

发表于 2003-6-13 23:08:24 | 显示全部楼层

Re: [其他]:[求助]不明白

最初由 kfx2002 发布
[B]为什么在delete pDb时,会出现错误?

[code]
void MFCTest()
{

   AcDbDatabase *pDb = new AcDbDatabase(Adesk::kFalse);

    pDb->readDwgFile("test1.dwg");

    AcDbBlockTable *pBlkTbl;
    pD... [/B]


提示你什么错误?

1.test1.dwg文件是否存在在当前目录或者搜索目录内, 你最好指定下具体路径.

2. readDwgFile(..) 返回值是否是Acad::eOk ? 程序里面应该判断是否返回eOk, 然后再进行下面操作.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-6-14 09:28:52 | 显示全部楼层
test1.dwg文件在CAD的目录下,程序运行能够输出test1.dwg文件中的实体类名,经调试,只有到delete pDb的语句时,会出现错误,MFCtest中的代码是ARX库中的源码,为什么在ARX库中运行正常,搬到这里就不正常了?和C++中设置有关?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-14 13:45 , Processed in 0.536860 second(s), 35 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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