请教一下,ads_defun用来作什么!?(迫切了解)
在objectARX defuned command (向导工具条cmd)提供了两种注册命令方式
一个是addcommand 一个是ads_defun,那么
ads_defun用来作什么,如果使ads_defun创建的命令,如何使用命令
(我试过addcommand可以直接以命令形式使用,而ads_defun不执行) 在Lisp中使用 根据你所说的,我建一个命令adscmd
并返回给lisp一个值
int adscmd()<BR>{<BR> // TODO: Implement the command<BR> resbuf* pArg = acedGetArgs();
int z=6;
acedRetInt(Z);
return RTNORM;<BR>}
这种编译无误,但在lisp却接收不到这个值Z
(setq zz (adscmd z))(当然在用时加载arx程序)
是不是别的问题,还是我编程有误,望尽详言
<BR> 你用(setq zz (adscmd))后
zz应当等于6 ; 错误: no function definition: adscmd
实在想不通,定义的是函数,且是命令
而在lisp却执行的不是命令!? 上面的例子肯定可以通过,
再试试吧. 谢谢版主指导,我重试了一下,没有问题,
由于我设定的Z值
是从另外一个类中引入的数据(class CGearDialog : public CDialog)
int cmdz()// This is command 'CMDZ'<BR>{CGearDialog Dlg;<BR> // TODO: Implement the command<BR> resbuf* pArg = acedGetArgs();<BR> int Z;<BR> Z=Dlg.m_nZ;//m_nZ整型数据<BR> acedRetInt(Z);<BR> return RTNORM;<BR>}
这个从CGearDialog引入的数并没有传递过去,
同样,如果我将一个数从lisp里返回到ARX
建立ads_defun的数据又作何处理!?(再次谢过) 看到resbuf* pArg = acedGetArgs();
你要做的只是从pArg中提数据,
你从Lisp传过来的所有数据(不管是List还是单个的数),都在pArg里了.
欢迎常来 resbuf* pArg = acedGetArgs();这些代码是自动生成的
在创建的命令里,想从别的类中引入值,结果并没有引入值
正如上面的代码的所述,
还请版主再次指点一二 那是你的类CGearDialog有问题.
页:
[1]
2