【发布时间】:2012-01-18 15:35:48
【问题描述】:
我有一个我编写的 C++ dll(本机,而不是 .net),我想使用 Visual Lisp 中的功能。谁能给我举个例子来说明如何做到这一点,或者至少要阅读哪些文档?
【问题讨论】:
我有一个我编写的 C++ dll(本机,而不是 .net),我想使用 Visual Lisp 中的功能。谁能给我举个例子来说明如何做到这一点,或者至少要阅读哪些文档?
【问题讨论】:
我通过为我的 dll 编写一个 activex/COM 包装器解决了这个问题,我认为它应该使将来更容易链接到。在the swamp 上启动一个线程从好人那里得到了一些关于如何从 Visual Lisp 调用 COM 的答案。作为记录,它看起来像这样:
//in c++... (header and IDL file also needed)
hresult timestwo(double in,double* out)
{
*out = in*2;
return S_OK;
}
;; in Lisp...
(vl-load-com)
(setq myinstance (vlax-create-object "mycomwrapperdll.mycomwrapperclass"))
(setq num 12.34)
(vlax-invoke-method myinstance 'timestwo num 'newnum)
(vlax-release-object myinstance)
;; newnum now contains 24.68
【讨论】:
您使用 acedDefun() 和 acedRegFunc() API 调用将您的本机 C++ 代码公开给 AutoLisp。
Here 是 Autodesk 编程论坛上的一个讨论,正是询问您的问题。
【讨论】: