VL.应用中的几个问题
我创建了一个MFC dll项目,我将为LISP调用创建一个计时器。实际上,这不是一个ARX项目,所以我没有使用任何ARX函数。我不想用它们。
我用的是“vl.application”。
好了,项目已经编译好了,并且正在运行。有时候是不稳定的。
下面是我的问题:
1。我们如何向
" VL . application function "
传递参数,或者有人能告诉我如何使用
" VARIANT funcall(safe array * Arguments)"
?
这样:
CDVlApplication vlisp ;
vlisp.CreateDispatch(_T("VL.Application.16"));
CDVlDocument vl_ActiveDocument =vlisp.get_ActiveDocument();
CDVlFunctions vl_Functions = = vl_ActiveDocument.get_Functions();
CDVlFunction vl_Function = = vl_Functions.get_Item(FuncName);
如果一个函数没有参数,我们可以使用:
VL _ Function . funcall(NULL);
没关系。我测试过了。但是怎么才能调用带参数的函数呢?许多年前,Owen提到过类似的问题,但我没有得到答案。
2。为什么定时器会让CAD不稳定?如何避免?如何设置
“尝试...catch"
这是我的项目文件。和一些LISP代码:
(defun callback()
(setq newViewSize (getvar 'viewsize))
(if (/= newViewSize OldViewSize)
(progn
(setq oldViewSize NewViewSize)
(princ "\nViewSize has been Changed!Now is: ")
(princ NewViewSize)
(princ)
)
)
)
(defun c:test()
(setq obj (vlax-create-object "vlax.timers"))
(setq oldViewSize (getvar 'ViewSize))
(setq timer0 (vlax-invoke obj 'SetLispTimer 100"callback"))
(princ)
)
我需要你的帮助,非常感谢。
**** Hidden Message *****
我附上了一个例子,使用vb.net+反射,也许这对您有帮助。
谢谢。
是的,我知道 VB.net 可以做到这一点,我还有一个VB示例。但C++不同,我不知道。
页:
[1]