Visual Lisp: how to call functions in external C++ DLL

前端 未结 2 1796
滥情空心
滥情空心 2021-01-05 04:01

I have a C++ dll I have written (native, not .net), and I would like to use its functionality from Visual Lisp. Can anyone point me to an example of how to do this, or at l

相关标签:
2条回答
  • 2021-01-05 04:42

    You expose your native C++ code to AutoLisp using the acedDefun() and acedRegFunc() API calls.

    Here is a discussion on Autodesk's programming forum asking exactly your question.

    0 讨论(0)
  • 2021-01-05 04:55

    I solved this by writing an activex/COM wrapper for my dll, which I think should make it easier to link to in future. Starting a thread on the swamp yielded some answers from nice people about how to call COM from Visual Lisp. For the record, it looks something like this:

    //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
    
    0 讨论(0)
提交回复
热议问题