设为首页收藏本站

晓东CAD家园-论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

返回列表
查看: 51|回复: 5

[编程申请] 晓东API建议加上OLE savetoFile这个功能

[复制链接]

签到天数: 851 天

连续签到: 291 天

[LV.10]以坛为家III

已领礼包: 1660个

财富等级: 堆金积玉

发表于 2017-8-15 10:39:21 |阅读模式

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

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

x
如题,比如excel粘贴进去的ole对象,有时候在64位上无法编辑,只能显示,另存为xls则可以方便编辑。



上一篇:【已解决】求块分解,分解后为原图自动剪切遮罩块 有效果动画图
下一篇:如何在别人提供的cad横断面设计图中提取横断面地面线数据
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
百度谷歌雅虎搜狗搜搜有道360奇虎

签到天数: 921 天

连续签到: 1 天

[LV.10]以坛为家III

已领礼包: 39个

财富等级: 招财进宝

发表于 2017-8-15 11:38:32 | 显示全部楼层
你是否有现成的代码?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

签到天数: 851 天

连续签到: 291 天

[LV.10]以坛为家III

已领礼包: 1660个

财富等级: 堆金积玉

 楼主| 发表于 2017-8-15 17:29:55 | 显示全部楼层
没有,ARX只懂皮毛,查了手册都没找到savetofile
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

签到天数: 851 天

连续签到: 291 天

[LV.10]以坛为家III

已领礼包: 1660个

财富等级: 堆金积玉

 楼主| 发表于 2017-8-19 12:58:14 | 显示全部楼层
本帖最后由 xinxirong 于 2017-8-19 13:57 编辑

帮忙看看代码哪里出问题?Serialize什么都没有。
        static int ads_oleSave(void)
        {
                //函数的参数 (oleSave ename )
                ads_name insert_ename;
                AcDbObjectId insert_ID;
                AcDbObjectId idArray[200];//子对象不超过200个
                bool bHighlight;


                struct resbuf *pArgs =acedGetArgs () ;//pt
                if(pArgs->restype!=RTENAME)
                {
                        acutPrintf(_T("\n调用HighlightFirstInBlock参数一(拾取点)不是RTENAME"));
                        return RTERROR;
                }       
                insert_ename[0]=pArgs->resval.rlname[0];
                insert_ename[1]=pArgs->resval.rlname[1];
                acdbGetObjectId(insert_ID, insert_ename);//获得OLE的ID

                AcDbEntity *pEnt = NULL;
                //AcDbOle2Frame *pEnt ;
                estat=acdbOpenAcDbEntity(pEnt, insert_ID, AcDb::kForRead);
                AcDbOle2Frame *pBlock = AcDbOle2Frame::cast(pEnt);

                COleClientItem *d=(COleClientItem*)(pBlock->getOleObject());       
                //d->GetIDispatch(TRUE)->Invoke();

                CDocument *a=(CDocument*)d->GetDocument();

                CMemFile mem;
                CArchive saveArchive(&mem, CArchive::store);

                // Calling the base class COleDocument enables serialization
                // of the container document's COleClientItem objects.
                a->Serialize(saveArchive);
                saveArchive.Flush();
                mem.Flush();
                saveArchive.Close();

                ULONGLONG ul = mem.GetLength();
                BYTE* b = mem.Detach();
                //---------
                //其他处理
                //---------
                free(b);
                mem.Close();


                //void fun=CDocument::OnFileSaveAs();//ID_FILE_SAVE_AS只能通过消息调用OnFileSaveAs
                //a->OnFileSaveAs();
                //d->GetDocument()->OnFileSaveAs();//Protected member function
                //d->GetDocument()->OnFileSendMail();
                //d->CopyToClipboard(TRUE);//这个只是复制这个ole对象,只能粘贴回cad

                return acedRetVoid() ;
        }
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

签到天数: 266 天

连续签到: 1 天

[LV.8]以坛为家I

已领礼包: 13个

财富等级: 恭喜发财

发表于 2017-8-19 14:37:04 | 显示全部楼层

getOleObject() 改成 getOleObjectItem()呢?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

签到天数: 851 天

连续签到: 291 天

[LV.10]以坛为家III

已领礼包: 1660个

财富等级: 堆金积玉

 楼主| 发表于 2017-8-19 17:12:30 | 显示全部楼层
这样?好像没有这个member function啊:
COleClientItem *d=(COleClientItem*)(pBlock->getOleObjectItem);
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

辽公网安备 21040202000005号

GMT+8, 2018-2-23 06:52 , Processed in 0.576319 second(s), 78 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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