2011-12-20 46 views
12

Tôi đã nhận thấy rằng mỗi lần thứ ba tôi bắt đầu IDE VB6, một hộp thông báo xuất hiện với thông báo lỗi sau: -"Phương pháp '~' của đối tượng '~' không thành công" khi khởi động VB6 IDE

Method '~' of object '~' failed 

Điều này không xảy ra đối với bất kỳ dự án cụ thể nào hoặc với bất kỳ điểm chung nào khác mà tôi đã nhận thấy. Nó không xuất hiện gây ra bất kỳ sự cố nào sau khi loại bỏ thư. Câu hỏi của tôi là: Tôi nên lo lắng về điều này, và nếu có, tôi nên làm gì về nó.

Tôi đã lưu ý các câu hỏi khác về cùng một thông báo lỗi here, herehere, nhưng tôi nhận được thông báo khi mở dự án.

+4

Bạn đã bật bất kỳ addins nào chưa? - có thể là giá trị cố gắng vô hiệu hóa bất kỳ những người bất thường bạn có trong trường hợp có một vấn đề ở đó. –

+0

@JonEgerton, vâng tôi có. Cảm ơn vì tiền hỗ trợ; Tôi sẽ thử xem. –

Trả lời

3

Tôi thường xuyên gặp phải lỗi này và trong trường hợp của tôi, đó là do bổ trợ Visual Source Safe (cài đặt xấu tôi đoán; cài đặt lại đã khắc phục sự cố). Nó không bao giờ gây ra vấn đề; nó chỉ là một bận tâm. Như Jon đã nói trong phần bình luận, tôi sẽ thử tắt các add-in để xem nó có khắc phục được vấn đề không. Một điều nữa là đảm bảo bạn đang chạy Gói Dịch vụ 6.

+0

Cảm ơn bạn; nó là một bổ trợ, có nghĩa là tôi không phải lo lắng về nó. –

3

Điều này thường do khay nhớ tạm thời bị khóa trên máy cục bộ. Các trình bổ sung IDE VB6 sử dụng clipboard để sao chép/dán các biểu tượng vào các nút trên thanh công cụ vì API bổ trợ không hiển thị bất kỳ cách nào khác để đặt một hình ảnh ở đó.

Thường máy khách Remote Desktop (mstsc.exe) là thủ phạm của khay nhớ tạm bị khóa. Cách Microsoft thực hiện chuyển sang clipboard từ xa là bằng cách thăm dò clipboard địa phương cho các định dạng có sẵn mà khóa nó trong một thời gian. Clipboard là tài nguyên toàn cầu được thiết kế khủng khiếp có thể được truy cập bởi một quá trình tại một thời điểm và API OpenClipboard không thành công trong các quy trình khác nếu tài nguyên hiện không có sẵn.

1

Tôi đã gỡ cài đặt Visual Studio 6.0 và sau đó cài đặt lại. Điều này xóa lỗi "Phương pháp '~' của đối tượng '~' không thành công" cho tôi. VB 6 của tôi bây giờ xuất hiện để hoạt động đúng. Tôi tin rằng, trong trường hợp của tôi, nó phải làm với một số đối tượng COM không được đăng ký đúng cách. Máy mới của tôi nhận được một hình ảnh ma từ hộp cũ của tôi có VS trên đó.

1

Tôi bắt đầu gặp phải lỗi này đột ngột trên cả hai máy phát triển của mình (một trong 32 bit, 64 bit khác). Trong tìm kiếm của tôi cho một giải pháp, ai đó đã thực hiện một tham chiếu tiếp tuyến đến SourceSafe.

Ahh, sau đó nó xảy ra với tôi rằng tôi đã được gần đây làm sạch một dự án (thanh toán bù trừ. Bak tập tin, vv), và một trong các tập tin tôi làm sạch ra là 'MSSCCPRJ.SCC' (xem cách SourceSafe - cho nhóm của chúng tôi - một di tích ở xa, tôi cảm thấy "an toàn" khi xóa tệp này khỏi thư mục dự án).

Ngắn câu chuyện: khôi phục tệp 'MSSCCPRJ.SCC' vào thư mục dự án, giải quyết lỗi này.

1

Tôi vừa gặp lỗi này khi chạy VB6 trên Windows Server 2012 R2. Add-In vi phạm là Visual Component Manager 6.0. Khi tôi vô hiệu hóa điều đó, IDE đã có thể mở mà không có sự cố Method '~' of object '~' failed. Tôi không chắc liệu điều đó có dẫn đến vấn đề cài đặt hay chỉ là phần mềm "cổ" trên hệ điều hành "hiện đại".

Đối với bất kỳ ai khác đang cố cài đặt VB6 trên Windows 7, 8, 10, 2012, v.v.Dưới đây là một số liên kết hữu ích:

http://www.fortypoundhead.com/newbrowseresults.asp?catid=34

http://it.toolbox.com/blogs/locutus/how-to-install-visual-studio-6-onto-windows-10-70155

0

Tôi không biết về lỗi này cụ thể, nhưng tôi có một số thông tin cơ bản về thông báo lỗi này.

COM xác định hai mức thông tin lỗi. Tất cả các phương thức COM và thuộc tính đều có giá trị trả về với kiểu HRESULT, trong đó 0 (S_OK) cho biết giá trị thành công và giá trị âm cho biết lỗi. Ngoài ra còn có một cơ chế để cung cấp cái gọi là "thông tin lỗi phong phú".

Nếu đối tượng COM tạo thông tin lỗi phong phú, VB6 sẽ hiển thị thông tin được cung cấp. Nếu đối tượng COM trả về giá trị âm, nhưng không cung cấp thông tin lỗi phong phú, thì VB6 sẽ hiển thị thông báo “Phương thức '~' của đối tượng '~' không thành công”.

Có một số mã lỗi chuẩn như E_POINTER và E_NOTIMPL thường được trả về bởi đối tượng COM trong C++. Tất cả những kết quả này trong thông báo “Phương thức” ~ 'của đối tượng' ~ 'không thành công ”.

Nếu bạn đang triển khai đối tượng COM trong C++, lời khuyên của tôi là luôn tạo thông tin lỗi phong phú. (Trong ATL bạn chỉ cần gọi chức năng Lỗi.)

Các vấn đề liên quan