Chuyển đến nội dung
Diễn đàn CADViet
elleHCSC

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

Các bài được khuyến nghị

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)

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
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.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
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 !

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay

×