乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 23|回复: 1

关于acedCommand的讨论

[复制链接]

22

主题

71

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
159
发表于 2005-3-19 16:03:00 | 显示全部楼层 |阅读模式
ARX的帮助里说:使用acedCommand有三个原则:
1、在注册为透明ARX(ACRX_CMD_TRANSPARENT)的应用程序中不使用
2、不使用acedCommand函数去执行其他任何通过acedRegCmds->addCommand()注册的命令。(可以用acedInvoke())
3、在允许用户交互操作的场合,不使用
我有一个疑问:我在A.ARX中调用另外一个B.ARX程序,同样都是透明命令,用acedCommand也可以实现调用啊。反倒用acedInvoke()调用会出毛病
如果想通过A.ARX中调用B.ARX程序,不知道大家是怎么实现的。
void A()         //A是注册的命令
{
       
        if(acedArxLoad("B.arx")!=RTERROR)
        {       
                         acedCommand(RTSTR,"B",RTNONE);         //B是B.ARX中注册的命令
                if(acedArxUnload("B.arx")==RTERROR)
                        acedAlert("卸载失败!\n请重新启动系统!或者联系管理员");
        }
        else
                acedAlert("加载失败!\n请重新启动系统!或者联系管理员");
}
回复

使用道具 举报

3

主题

97

帖子

1

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
109
发表于 2005-3-24 10:43:00 | 显示全部楼层
那个不能使用指的是避免在某些情况下使用, 以避免过多re-entrance(因为acedCommand, 透明命令, addCommand注册的命令等等都是靠堆栈, 使用时要避免堆栈冲突, 所以最多只允许re-entry四次), 不是一次都不能用.
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-2-5 06:53 , Processed in 0.298987 second(s), 56 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表