Lỗi không nhận diện được AutoCAD từ VB6

Liên hệ QC

PhanTuHuong

VBA & VB.NET for Excel & AutoCad
Thành viên danh dự
Tham gia
13/6/06
Bài viết
7,121
Được thích
24,279
Tôi có viết ứng dụng trong AutoCAD từ VB6. Nếu dòng code này hoạt động từ VBA Excel thì ngon lành. Nhưng trong VB6 (SP6) thì xuất hiện thông báo lỗi khó hiểu, hàm GetObject tê liệt. Đã tìm đủ cách fix lỗi Run-time error 429 này từ nhiều nguồn, cài lại Windows, VB6, AutoCAD... rồi update mà vẫn bị. Tôi dùng Visual Studio 2022 thì GetObject ngon lành.

Nhờ các bác tư vấn xem có cách nào khắc phục?

Đã fix lỗi theo bài #9 và #10 dù không linh hoạt.

AutoCAD error 1.png
AutoCAD error 2.png
 
Lần chỉnh sửa cuối:
Anh có chắc chắn làm bằng .NET với hàm GetObject chạy mà VB6 lại không chạy không? Vì bản chất chúng đều dùng hàm API để kết nối COM. Hàm trên chỉ chạy nếu ứng dụng chủ - AutoCAD chạy với kiểu "Run Administrator".
 
Anh có chắc chắn làm bằng .NET với hàm GetObject chạy mà VB6 lại không chạy không? Vì bản chất chúng đều dùng hàm API để kết nối COM. Hàm trên chỉ chạy nếu ứng dụng chủ - AutoCAD chạy với kiểu "Run Administrator".

Anh test từ VBA trong Excel và Visual Studio 2022 đều Ok, Getobject đều bắt được ứng dụng AutoCAD đang mở.
Chương trình anh viết bằng VB6 xuất Excel sang AutoCAD trước vẫn ngon lành, gần đây có máy kêu kết nối bị lỗi, tương tự máy mình :(
 
Anh test từ VBA trong Excel và Visual Studio 2022 đều Ok, Getobject đều bắt được ứng dụng AutoCAD đang mở.
Chương trình anh viết bằng VB6 xuất Excel sang AutoCAD trước vẫn ngon lành, gần đây có máy kêu kết nối bị lỗi, tương tự máy mình :(

VB6 là 32-bit, anh xem AutoCAD anh cài là bản 32 hay 64?
 
Cài ZwCAD (nhái AutoCAD) thì lại ngon, nhưng lại phát sinh lỗi khác :(
 
Anh @PhanTuHuong ơi, cái này cũng giống em bị mà em đã lên GPE hỏi nè... GetObject
trong VB6 nó bị lỗi như anh nói , em làm trong VB.net thì lại OK ... tới giờ thì e đành bỏ luôn cái VB6 cho cái vụ này
 
Anh @PhanTuHuong ơi, cái này cũng giống em bị mà em đã lên GPE hỏi nè... GetObject
trong VB6 nó bị lỗi như anh nói , em làm trong VB.net thì lại OK ... tới giờ thì e đành bỏ luôn cái VB6 cho cái vụ này

Tôi cũng không hiểu là sao. Vì nhiều máy tính dùng chương trình tôi viết trên VB6 xuất từ Excel sang AutoCAD đều ngon. Gần đây lác đác có máy kêu không kết nối được. Bản thân máy tôi cũng bị lỗi này, nghi do update Windows . Cài lại Windows, rồi thay cả bản AutoCAD đời cao mà vẫn bị... VB.NET 2022 cũng bị lỗi hàm này.
Cuối cùng chuyển sang bản ZwCad (nhái của AutoCAD) thì GetObject lại ngon.
 
Em Search thì thấy cũng có trường hợp bị giống anh.
Có mấy ý :
+ Nêu rõ phiên bản khi dùng VB6, anh xem thử. GetObject(, "Autocad.Application.19")
+ I guess the problem you have is that you start an EXE from VB6, so you start it in 32bit mode and you try to connect it to the 64bit AutoCAD ActiveX-Server .... and AFAIK that does not work.

 
Em Search thì thấy cũng có trường hợp bị giống anh.
Có mấy ý :
+ Nêu rõ phiên bản khi dùng VB6, anh xem thử. GetObject(, "Autocad.Application.19")
+ I guess the problem you have is that you start an EXE from VB6, so you start it in 32bit mode and you try to connect it to the 64bit AutoCAD ActiveX-Server .... and AFAIK that does not work.


Buộc phải thêm phiên bản đằng sau chuỗi Autocad.Application và chương trình không linh hoạt nữa, vì sử dụng liên kết muộn (giờ phải thiết lập theo người dùng).
Khả năng đây là sự kiểm soát của Windows vì tôi dùng 2 laptop có bản quyền + Account của Microsoft thì không vấn đề gì. Máy bàn Windows không bản quyền trước kia chạy ổn, nhưng mới update thì nó lỗi như trên. Cài lại Windows và không update gì vẫn lỗi vậy (VB6 test từ bản gốc và cả SP6 + update control).
Đã cập nhật anh @huhumalu nhé. Cám ơn!
 
Lần chỉnh sửa cuối:
Vẫn lỗi GetObject khi sử dụng VB.NET kết nối sang AutoCAD 2020 (chạy Admin), bộ setup cao nhất Visual Studio 2022 :(

VB.NET with AutoCAD.png
 
Web KT
Back
Top Bottom