明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3082|回复: 13

AutoCAD2010二次开发,自定直线时出错

[复制链接]
发表于 2014-7-14 16:14 | 显示全部楼层 |阅读模式
这个是添加的代码
AcGePoint3d ptStart(0,0,0);
        AcGePoint3d ptEnd(200,200,0);
  AcDbLine  *pline=new AcDbLine(ptStart,ptEnd);
       AcDBlockTable  *pBlockTable;
    acdbHostApplicationServices()->workingDatabase()
     ->getBlockTable(pBlockTableRecord,AcDb::kForRead);
    AcDbBlockTableRecord  *pBlockTableRecord;
             pBlockTable->getAt(ACDB_MODEL_SPACE, pBlockTableRecord);
    AcDb::kForWrite);
    AxDbObjectId lineId;
    pBlockTableRecord->appendAcDbEntity(lineId,pLine);
    pBlockTable->close();
    PBlockTableRecord->close();
    pLine->close();
编译时是不是要添加头文件,怎样添加
编译时出现很多错误
1>e:\objecarx2010mulu\mydraw\mydraw\acrxentrypoint.cpp(77) : error C2059: 语法错误 : “)”
1>e:\objecarx2010mulu\mydraw\mydraw\acrxentrypoint.cpp(78) : error C2146: 语法错误 : 缺少“;”(在标识符“lineId”的前面)
1>e:\objecarx2010mulu\mydraw\mydraw\acrxentrypoint.cpp(78) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>e:\objecarx2010mulu\mydraw\mydraw\acrxentrypoint.cpp(78) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>e:\objecarx2010mulu\mydraw\mydraw\acrxentrypoint.cpp(79) : error C2143: 语法错误 : 缺少“;”(在“->”的前面)


该贴已经同步到 damingming0073的微博
发表于 2014-7-14 17:12 | 显示全部楼层
添加什么头文件?
编检查编译器定位的结果看看
再不行屏蔽这段代码看看
 楼主| 发表于 2014-7-15 09:18 | 显示全部楼层
风树 发表于 2014-7-14 17:12
添加什么头文件?
编检查编译器定位的结果看看
再不行屏蔽这段代码看看

由于使用了AcDbLine 所以要添加dbent.h
 楼主| 发表于 2014-7-15 09:19 | 显示全部楼层
风树 发表于 2014-7-14 17:12
添加什么头文件?
编检查编译器定位的结果看看
再不行屏蔽这段代码看看

这段代码就是来生成直线的啊. 如果屏蔽了,怎么生成呢
发表于 2014-7-15 14:45 | 显示全部楼层
damingming0073 发表于 2014-7-15 09:19
这段代码就是来生成直线的啊. 如果屏蔽了,怎么生成呢

什么问题?解决好了吗?分享一下吧
发表于 2014-7-16 19:17 | 显示全部楼层
  AcDbBlockTableRecord  *pBlockTableRecord;
             pBlockTable->getAt(ACDB_MODEL_SPACE, pBlockTableRecord);
    AcDb::kForWrite);
改一下AcDbBlockTableRecord  *pBlockTableRecord;
             pBlockTable->getAt(ACDB_MODEL_SPACE, pBlockTableRecord
    AcDb::kForWrite);
发表于 2014-7-16 20:09 | 显示全部楼层
a335805186 发表于 2014-7-16 19:17
AcDbBlockTableRecord  *pBlockTableRecord;
             pBlockTable->getAt(ACDB_MODEL_SPACE, pBloc ...

真相帝                           
 楼主| 发表于 2014-7-18 10:26 | 显示全部楼层
a335805186 发表于 2014-7-16 19:17
AcDbBlockTableRecord  *pBlockTableRecord;
             pBlockTable->getAt(ACDB_MODEL_SPACE, pBloc ...

不好意思,我在提问的时候写错了,改成你说的还是那么多错误  我添加了dbents.h 提示这样的错误什么意思呢?
1>d:\objectarx开发包\objectarx2010\inc\acarray.h(137) : error C2857: 在源文件中没有找到用 /YcStdAfx.h dbents.h 命令行选项指定的“#include”语句
 楼主| 发表于 2014-7-18 10:26 | 显示全部楼层
风树 发表于 2014-7-16 20:09
真相帝

改成这样你成功了吗
发表于 2014-7-21 15:26 | 显示全部楼层
AcGePoint3d ptStart(0,0,0);
                AcGePoint3d ptEnd(200,200,0);
                AcDbLine*  pline=new AcDbLine(ptStart,ptEnd);
                AcDbBlockTable  *pBlockTable;
                AcDbBlockTableRecord  *pBlockTableRecord;
                acdbHostApplicationServices()->workingDatabase()
                        ->getBlockTable(pBlockTable,AcDb::kForRead);
               
                pBlockTable->getAt(ACDB_MODEL_SPACE, pBlockTableRecord,
                AcDb::kForWrite);
                AcDbObjectId lineId;
                pBlockTableRecord->appendAcDbEntity(lineId,pline);
                pBlockTable->close();
                pBlockTableRecord->close();
                pline->close();
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-4-18 14:28 , Processed in 0.365648 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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