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

前端 未结 2 1885
滥情空心
滥情空心 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: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
    

提交回复
热议问题