明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 331|回复: 2

VC ActiveX 图形填充AddHatch调用AppendOuterLoop出错,有偿500rmb求解决

[复制链接]
发表于 2023-4-26 01:03 | 显示全部楼层 |阅读模式
//定义矩形框的四个点
                int nPoints = 4;
                double x[4] = {100, 100, -100, -100};
                double y[4] = {-50, 50,  50,   -50};
                double *pPt = new double [nPoints*3];
                for(int i=0; i<nPoints; i++)
                {
                        pPt[3*i]        = x[i];
                        pPt[3*i+1]        = y[i];
                        pPt[3*i+2]        = 0.0;
                }

                //向AutoCAD输出矩形框
                COleSafeArray s1;
                VARIANT *pPointArray;
                s1.CreateOneDim(VT_R8, nPoints*3, pPt);
                pPointArray = (LPVARIANT)s1;

                LPDISPATCH        Object[1];                                                        //实体对象数组
                Object[0]                                = ModeSpace.AddPolyline(*pPointArray);
                IAcadPolyline PolyLine = (IAcadPolyline)Object[0];
                PolyLine.SetClosed(TRUE);                                                //闭环

                //调用填充函数
                HatchObjectType                = 0;
                VARIANT                                ObjectType;       
                ObjectType.vt                = VT_I4;                        //指明整型数据  
                ObjectType.lVal                = HatchObjectType;  //赋值
                IAcadHatch Hatch        = ModeSpace.AddHatch(0, "ANSI31", TRUE, ObjectType);

                //下面定义pObjectArray应该是出错了
                COleSafeArray s2;
                VARIANT *pObjectArray;       
                s2.CreateOneDim(VT_DISPATCH, 1, PolyLine);
                pObjectArray = (LPVARIANT)s2;
               
                //调用这个函数出错Unhandled exception in test.exe: 0xC0000005: Access Violation
                Hatch.AppendOuterLoop(*pObjectArray);       
                Hatch.Evaluate();
//有偿求解决,可加Q 152274848,回帖解决了问题也算

 楼主| 发表于 2023-4-26 01:05 | 显示全部楼层
刚发帖就解决了,很弱的一个错误,哎
 楼主| 发表于 2023-4-26 01:06 | 显示全部楼层
s2.CreateOneDim(VT_DISPATCH, 1, PolyLine);
改为 s2.CreateOneDim(VT_DISPATCH, 1, Object);
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-21 00:10 , Processed in 0.183131 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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