查看单个帖子
旧 2009-04-19, 09:16 PM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 【转帖】.net:定义一个可以被lisp调用的函数

.net:定义一个可以被lisp调用的函数
www.dimcax.com
.net:定义一个可以被lisp调用的函数
.net:定义一个可以被lisp调用的函数
这里要说明的是,你需要对传入的参数进行拆箱,而对输出的结果要进行装箱。 下面演示了如何处理参数以及对结果进行装箱:
<lispfunction("lispfunction")> _
public function vbfunction(byval rbfargs as resultbuffer) as resultbuffer
'获取输入的参数...
dim arinputargs as array
dim realarg1 as double
dim intarg2 as integer
dim strarg3 as string
arinputargs = rbfargs.asarray
realarg1 = ctype(arinputargs.getvalue(0), typedvalue).value
intarg2 = ctype(arinputargs.getvalue(1), typedvalue).value
strarg3 = ctype(arinputargs.getvalue(2), typedvalue).value
'在这里做你想做的事情...
'...
'...
'对结果装箱...
'对double型使用rtreal (5001)
'对string型使用rtstr (5003)
'对整型使用rtshort (5005)
dim rbfresult as resultbuffer
rbfresult = new resultbuffer( _
new typedvalue(cint(5001), 3.14159), _
new typedvalue(cint(5003), 42), _
new typedvalue(cint(5005), "goodbye!"))
return rbfresult
end function
上面的代码假定传入的第一个参数为一实数,然后是一个整数,最后为一个字符串。下面是你在lisp中调用这段代码后的结果:
command: (lispfunction 1.234 9876 "hello!")
(3.14159 42 "goodbye!")
太好了(我还没运行程序)! 能不能定义一个被vba调用的函数呢?
cad开发爱好者
对象和选择集能做参数吗?
rtename 5006 实体名 rtpicks 5007 选择集名


1
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)