如何在一个arx中调用另一个arx中定义的命令
<p>现在我在程序A.arx中新加入了一个命令comandA,我想在我的另一个程序B.arx中调用这个命令comandA,请问我该如何做?</p><p>看了一些acedCommand()和acedInvoke()的帮助,但是一直实验不成功,我需要在程序A中怎么做?用acedDefun()么?用acedRegFun()么?</p><p>我在程序B中需要怎么做?谢谢!</p> <p>在A中acedDefun(),B中acedInvoke()</p><p>或者如果仅是调用命令,不需要返回值的话也可以用acedCmd()直接调用命令</p> <p>还是有点不明白:我在B中的commandB是acedRegCmds->addCommand来加入的。</p><p>具体为acedRegCmds->addCommand(_T("DISORDER_COMMANDS"), //命令组的名字<br/> _T("disorder"), //全局命令的名字<br/> _T("disorder"), //局部命令的名字<br/> ACRX_CMD_MODAL, //标志位: 表示其它命令在激活状态时该命令也可以使用<br/> runFunction //使用该命令时调用的函数<br/> );</p><p>现在我使acedDefun()是定义runfunction呢还是disorder?在A中调用的时候我是传入的是runfunction还是disorder呢?我是想在A中直接执行disorder这个命令.请教!</p> acedCommand(RTSTR,_T("disorder"),NULL); 只要嵌套不是太深,用acedCommand直接就可以 <p>acedCommand不一定行,嵌套不是太深也不可以!</p><p>用acDocManager->sendStringToExecute()这个家伙试下吧,应该可以的.</p> 确保A.arx先加载,1、在B.arx里直接向命令行发送commandA命令调用它,没有返回值。
2、arx也是DLL,可以跨DLL显示调用A.arx里commandA要执行的函数,这个可以有返回值。
acedCommand(RTSTR,_T("disorder"),NULL);和acDocManager->sendStringToExecute()这两种方法都可以
页:
[1]