Đến nội dung


Hình ảnh
- - - - -

Lisp với các file thư viện động *.OCX, *.DLL


  • Please log in to reply
2 replies to this topic

#1 elleHCSC

elleHCSC

    biết lệnh copy

  • Members
  • PipPipPip
  • 119 Bài viết
Điểm đánh giá: 98 (tàm tạm)

Đã gửi 24 January 2008 - 01:33 PM

Tôi có một file *.OCX là một dạng thư viện động của windows và trong đó có một số hàm tính toán (do người khác viết trước kia). Cái này nếu dùng C++, Delphi hay VB thì việc gọi một hàm từ thư viện này chắc là OK khi biết được đặc tả của các hàm đó (API), nhưng liệu Lisp có gọi được các hàm trong file thư viện dạng này để tính toán và dùng trong acad ko nhỉ; đỡ phải mất công viết lại hàm mà (hoặc thư file viện dạng *.DLL file).
Có bro nào trên này đã làm với dạg này chưa và có thì cho tôi xin 1 VD viết bằng lisp, được thì tốt quá vì đây là 1 số hàm thư viện dùng cho đo đạc và chắc chắn là rất rất hữu ích đối với cadman.

TKS.

(share for all, all will share)
  • 0
Share for all, all will share !

--------------------
HTTP://WWW.HCSC.VN
HTTP://WWW.HCSC.COM.VN

#2 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 4106 Bài viết
Điểm đánh giá: 4495 (đỉnh cao)

Đã gửi 24 January 2008 - 01:44 PM

Tôi có một file *.OCX là một dạng thư viện động của windows và trong đó có một số hàm tính toán (do người khác viết trước kia). Cái này nếu dùng C++, Delphi hay VB thì việc gọi một hàm từ thư viện này chắc là OK khi biết được đặc tả của các hàm đó (API), nhưng liệu Lisp có gọi được các hàm trong file thư viện dạng này để tính toán và dùng trong acad ko nhỉ; đỡ phải mất công viết lại hàm mà (hoặc thư file viện dạng *.DLL file).
Có bro nào trên này đã làm với dạg này chưa và có thì cho tôi xin 1 VD viết bằng lisp, được thì tốt quá vì đây là 1 số hàm thư viện dùng cho đo đạc và chắc chắn là rất rất hữu ích đối với cadman.

TKS.

(share for all, all will share)


Với File DLL dạng type library thì được, trước đây tôi đã từng thử. Bạn dùng hàm vlax-import-type-library để tạo một object chứa 1 class trong file dll type library này, sau đó dùng lệnh vlax-invoke-method, vlax-get-property, vlax-put-property để gọi truy xuất vào method hay property của object vừa được được tạo. Tất nhiên là khi nhập dữ liệu thì bạn phải chuyển kiểu dữ liệu sang dữ liệu mà DLL hiểu được bằng hàm vlax-make-variant .

Với OCX, tôi chưa thử, mặc dù OCX cũng là một type library.
  • 0

#3 elleHCSC

elleHCSC

    biết lệnh copy

  • Members
  • PipPipPip
  • 119 Bài viết
Điểm đánh giá: 98 (tàm tạm)

Đã gửi 23 December 2008 - 05:28 PM

Với File DLL dạng type library thì được, trước đây tôi đã từng thử. Bạn dùng hàm vlax-import-type-library để tạo một object chứa 1 class trong file dll type library này, sau đó dùng lệnh vlax-invoke-method, vlax-get-property, vlax-put-property để gọi truy xuất vào method hay property của object vừa được được tạo. Tất nhiên là khi nhập dữ liệu thì bạn phải chuyển kiểu dữ liệu sang dữ liệu mà DLL hiểu được bằng hàm vlax-make-variant .

Với OCX, tôi chưa thử, mặc dù OCX cũng là một type library.


Lâu quá giờ mới có dịp fải nghiên cứu lại vấn đề này, bác Hoành có cái VD mà dùng với DLL file thì cứ pm lên share cho tui nghiên cứu với. Help của CAD cũng không nhiều ví dụ lắm nên tôi cũng chưa mường tượng được một cách khái quát xem nó ra sao.

Tks !
  • 0
Share for all, all will share !

--------------------
HTTP://WWW.HCSC.VN
HTTP://WWW.HCSC.COM.VN