2010-11-18 38 views
11

Công ty của tôi có một ứng dụng VB6 sử dụng Crystal Reports 7 mà một khách hàng đã yêu cầu được cài đặt trên Windows 7 32 bit. Nó hiện đang được cài đặt trên các máy Windows XP 32bit SP2 tại máy khách. Kết nối với DB được thực hiện thông qua ODBC cho SQL Server 2000 thể hiện trên máy chủ khác.Làm cách nào để giải quyết "Lỗi thời gian chạy '429': Thành phần ActiveX không thể tạo đối tượng"?

Trên Windows 7, quá trình cài đặt hoạt động tốt, tuy nhiên khi bạn cố gắng mở ứng dụng, lỗi được đưa ra.

tôi đã xem xét những điều sau đây:

  • Đăng ký tất cả các file ocx bằng regsvr32 của dll và. Một số sẽ không đăng ký khi chúng đã được đăng ký hoặc thông báo sau được đưa ra "Hãy chắc chắn rằng" [name] .dll "là tệp DLL hoặc OCX hợp lệ và sau đó thử lại." Tôi đọc chuỗi diễn đàn này về vấn đề này: http://social.msdn.microsoft.com/forums/en-US/vblanguage/thread/0653f685-4526-45d9-89f3-8c479a6b4c62
  • Theo dõi việc mở ứng dụng bằng cách sử dụng Ứng dụng ProcessMonitor để thử và phát hiện nếu có tệp dll hoặc ocx bị thiếu - điều này có vẻ không đúng.
  • Được đánh giá việc áp dụng theo this list và không có gì có vẻ là chống lại những hướng dẫn

tôi đã nhận thấy hai mục trong cơ sở tri thức có liên quan đến này

  • http://support.microsoft .com/kb/281848 - comdlg32.ocx đi kèm với ứng dụng là phiên bản 6.0.81.69 và thư mục system32 trên máy tính dev (WinXP 32 bit) là 6.1.97.82. Tuy nhiên, nếu đây là vấn đề thì chắc chắn nó sẽ không hoạt động?
  • http://support.microsoft.com/kb/184898 - Tôi không chắc chắn làm thế nào để xác nhận rằng đây là vấn đề

Cuối cùng, do sự phức tạp, tôi không được phép để thực hiện thay đổi mã cho ứng dụng này. Ngay cả khi tôi, tôi không phải là lập trình viên VB6, chỉ là anh chàng có dự án hỗ trợ khủng khiếp! Nếu thay đổi mã được yêu cầu, sau đó tôi sẽ phải điều tra bằng cách sử dụng chế độ WinXP.

Cập nhật: Tôi gặp lỗi tương tự trong Chế độ XP. Đó là một Win XP với SP3 VM. Điều này chạy trên một máy ảo Win XP SP2, có khả năng một cái gì đó trong SP3 mà có thể đã gây ra điều này xảy ra? Hoặc là nó chỉ là một thực tế của nó là XP Mode?

+0

Bạn đã cài đặt Microsoft Scripting Engine chưa? – kyndigs

+0

Đó có phải là không cho VBScript? Xin lỗi vì sự thiếu hiểu biết của tôi. – RLT

+0

Kiểm tra các tài liệu tham khảo dự án trong IDE VB6 của bạn và chắc chắn rằng bạn đã kiểm tra tất cả các tệp DLL/OCX đó. – MicSim

Trả lời

2

File msrdo20.dll là mất tích từ quá trình cài đặt.

Theo the Support Statement for Visual Basic 6.0 on Windows Vista, Windows Server 2008 and Windows 7 tệp này sẽ được phân phối cùng với ứng dụng.

Tôi không chắc chắn lý do tại sao nó không phải là, nhưng giải pháp của tôi là để đặt các tập tin ở đâu đó trên máy tính này, và đăng ký nó sử dụng regsvr32 trong dòng lệnh, ví dụ:

regsvr32 c:\windows\system32\msrdo20.dll 

Trong một lý tưởng thế giới bạn sẽ gói này lên với redistributable.

0

Bạn nói nó hoạt động khi bạn cài đặt IDE VB6 để vấn đề có khả năng là các thành phần bạn đang cố gắng sử dụng phụ thuộc vào thời gian chạy VB6 đang được cài đặt.

Thời gian chạy VB6 không được cài đặt trên Windows theo mặc định.

Cài đặt IDE là một cách để có được thời gian chạy. Đối với các máy không phải là nhà phát triển, thay vào đó, gói cài đặt "redistributable" của Microsoft nên được sử dụng.

Đây là một trình cài đặt thời gian chạy VB6 từ Microsoft. Tôi không chắc chắn nếu nó sẽ là phiên bản phù hợp với các thành phần của bạn:

http://www.microsoft.com/downloads/en/details.aspx?FamilyID=7b9ba261-7a9c-43e7-9117-f673077ffb3c

+0

Tôi đã tải xuống tệp đó trước đó một cách tình cờ, rất tiếc là sau khi cài đặt trên XP SP3, ứng dụng vẫn không chạy và tôi không thấy một tệp khác có thể phân phối lại thích hợp hơn cho XP. – RLT

+0

Kể từ đó, tôi vừa phát hiện ra ba tệp DLL bị thiếu trên máy SP3 có mặt trên máy SP2 (và thêm chúng vào máy SP3 và đăng ký chúng cho phép ứng dụng chạy!). Chúng là msrdo20.dll, msbind.dll và msstdfmt.dll. Tôi đang cố gắng để tìm thấy bây giờ nơi họ đến từ và nếu họ đang có sẵn trong một redistributable một nơi nào đó. – RLT

+1

Thu hẹp nó xuống msrdo20.dll như gây ra vấn đề. – RLT

1

tải này cố định EXE VB6 của tôi và truy cập 2016 (sử dụng ACEDAO.DLL) thời gian chạy lỗi 429. Đã cho tôi 2 ngày dài để làm cho nó giải quyết bởi vì có rất nhiều nguyên nhân gây 429.

http://www.microsoft.com/en-ca/download/details.aspx?id=13255

QUOTE từ liên kết: "tải về này sẽ cài đặt một tập hợp các thành phần có thể được sử dụng để tạo điều kiện chuyển dữ liệu từ năm 2010 Microsoft Office System tập tin và các ứng dụng không phải của Microsoft Office"

1

tôi đã cùng một lỗi nhưng tôi giải quyết bằng cách sử dụng regsvr32.exe trong C: \ Windows \ SysWOW64. Vì chúng tôi sử dụng hệ thống x64. Vì vậy, nếu máy của bạn cũng là x64, ocx/dll cũng phải đăng ký với phiên bản regsvr32 x64

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