8

私が作成した C++ dll (.net ではなくネイティブ) があり、その機能を Visual Lisp から使用したいと考えています。誰かがこれを行う方法の例、または少なくともどのドキュメントを読むべきかを教えてもらえますか?

4

2 に答える 2

6

dll用のactivex/COMラッパーを作成することでこれを解決しました。これにより、将来的にリンクしやすくなると思います。沼地でスレッドを開始すると、 VisualLispから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
于 2011-12-19T18:10:09.843 に答える
4

acedDefun() および acedRegFunc() API 呼び出しを使用して、ネイティブ C++ コードを AutoLisp に公開します。

これは、Autodesk のプログラミング フォーラムで、まさにあなたの質問をするディスカッションです。

于 2011-12-12T22:16:29.367 に答える