首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

C++ Builder 联接AutoCAD画图出错,求帮助

2013-01-06 
C++ Builder 连接AutoCAD画图出错,求帮助首先是打开AutoCAD,这个没问题,代码如下:void __fastcall TForm1:

C++ Builder 连接AutoCAD画图出错,求帮助
首先是打开AutoCAD,这个没问题,代码如下:


void __fastcall TForm1::Button1Click(TObject *Sender)
{
Variant CAD;
try
{
CAD=CreateOleObject("AutoCAD.Application");
CAD.OlePropertySet("Visible",true);
}
catch (...)
{ShowMessage("AutoCAD启动失败");}
}


然后画一条直线:

void __fastcall TForm1::Button2Click(TObject *Sender)
{
Variant CAD,obj1,obj2;
Variant pt1,pt2;
double tmp;
        pt1=VarArrayCreate(OPENARRAY(int,(0,2)),varDouble);
        tmp=30.0;
        pt1.PutElement(&tmp,0);
        tmp=3.5;
        pt1.PutElement(&tmp,1);
        tmp=0.0;
        pt1.PutElement(&tmp,2);
        pt2=VarArrayCreate(OPENARRAY(int,(0,2)),varDouble);
        tmp=70.0;
        pt2.PutElement(&tmp,0);
        tmp=30.0;
        pt2.PutElement(&tmp,1);
        tmp=0.0;
        pt2.PutElement(&tmp,2);
        CAD=GetActiveOleObject("AutoCAD.Application");
        obj1=CAD.OleFunction("ActiveDocument");
        obj2=obj1.OleFunction("ModelSpace");
        obj2.OleProcedure("AddLine",VarArrayRef(pt1),VarArrayRef(pt2));
}

可以编译通过,但是运行的时候说 obj1=CAD.OleFunction("ActiveDocument");找不到成员(第21行),求助!
[解决办法]
如果有,那么ActiveDocument应该是一个属性,你这样试试:
obj1 = CAD.OlePropertyGet("ActiveDocument");

热点排行