xklathit 发表于 2008-3-16 18:03:00

如何在一个arx中调用另一个arx中定义的命令

<p>现在我在程序A.arx中新加入了一个命令comandA,我想在我的另一个程序B.arx中调用这个命令comandA,请问我该如何做?</p><p>看了一些acedCommand()和acedInvoke()的帮助,但是一直实验不成功,我需要在程序A中怎么做?用acedDefun()么?用acedRegFun()么?</p><p>我在程序B中需要怎么做?谢谢!</p>

fpiw 发表于 2008-3-16 18:12:00

<p>在A中acedDefun(),B中acedInvoke()</p><p>或者如果仅是调用命令,不需要返回值的话也可以用acedCmd()直接调用命令</p>

xklathit 发表于 2008-3-16 19:02:00

<p>还是有点不明白:我在B中的commandB是acedRegCmds-&gt;addCommand来加入的。</p><p>具体为acedRegCmds-&gt;addCommand(_T("DISORDER_COMMANDS"),&nbsp;//命令组的名字<br/>&nbsp;&nbsp;_T("disorder"),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//全局命令的名字<br/>&nbsp;&nbsp;_T("disorder"),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//局部命令的名字<br/>&nbsp;&nbsp;ACRX_CMD_MODAL,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//标志位: 表示其它命令在激活状态时该命令也可以使用<br/>&nbsp;&nbsp;runFunction&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//使用该命令时调用的函数<br/>&nbsp;&nbsp;);</p><p>现在我使acedDefun()是定义runfunction呢还是disorder?在A中调用的时候我是传入的是runfunction还是disorder呢?我是想在A中直接执行disorder这个命令.请教!</p>

fpiw 发表于 2008-3-16 21:21:00

acedCommand(RTSTR,_T("disorder"),NULL);

hfww111222 发表于 2008-7-14 16:27:00

只要嵌套不是太深,用acedCommand直接就可以

tongyu 发表于 2008-7-18 15:14:00

<p>acedCommand不一定行,嵌套不是太深也不可以!</p><p>用acDocManager-&gt;sendStringToExecute()这个家伙试下吧,应该可以的.</p>

Gray-wolf 发表于 2018-9-4 09:06:15

确保A.arx先加载,
1、在B.arx里直接向命令行发送commandA命令调用它,没有返回值。
2、arx也是DLL,可以跨DLL显示调用A.arx里commandA要执行的函数,这个可以有返回值。

yonjay 发表于 2022-11-19 15:36:44


acedCommand(RTSTR,_T("disorder"),NULL);和acDocManager->sendStringToExecute()这两种方法都可以
页: [1]
查看完整版本: 如何在一个arx中调用另一个arx中定义的命令