- 积分
- 1320
- 明经币
- 个
- 注册时间
- 2005-3-7
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
发表于 2005-3-16 10:38:00
|
显示全部楼层
ARX的应用方向似乎很不对头哪..
它本来不是一个专门从C++叫LISP的东西..
至于楼主的问题, 这样解决:
LISP: 在程序后头加(vl-acad-defun 'add10), 这样ARX才认识你的LISP程序.
ARX:
对话框里用C++ class wizard添加一个和编辑框对应的变量,比如说是m_iEdit. 再添加一个按钮的OnBtn (message = BN_CLICKED)函数, 函数内部指令如下:
int x = m_iEdit; // 直接用m_iEdit到下面也是可以
resbuf* rb_in = acutBuildList (RTSTR, "add10", RTSHORT, x, RTNONE);
resbuf* rb_out = NULL;
acedInvoke (rb_in, &rb_out);
然后rb_out里面就会存有结果了, 取出来就好. (楼主应该至少懂怎么用result buffer吧?)
但是偶还是不得不说, 如果只是这样一句话的LISP, 转到C++会很难吗..实际上只要在OnBtn函数里写和LISP里同样的一句话就行了..
m_iEdit += 10;
然后AutoCAD直接读取m_iEdit就可以了.. |
|