2010-04-11 30 views
6

Tôi có một ứng dụng VB6 cũ mà tôi vẫn đang cố gắng hỗ trợ. Một vài người dùng đã báo cáo sự cố lạ khi chạy ứng dụng trong Vista hoặc Windows 7. Tệp nhật ký không hiển thị bất cứ điều gì sau một trong các sự cố này, nhưng khách hàng báo cáo rằng thông báo lỗi cho biết "OLE something ...", nếu họ thấy gì cả.Làm thế nào để giữ một ứng dụng VB6 cũ chạy trong Windows Vista và Windows 7?

Tôi chưa bao giờ có thể tái tạo các sự cố này khi chạy chương trình trên hộp Vista hoặc Windows 7 của riêng mình, vì vậy tôi về cơ bản không có thông tin về vấn đề là gì.

Nghi ngờ của tôi là vấn đề với phiên bản của một hoặc nhiều trong số hàng triệu tỷ DLL mà ứng dụng VB6 phụ thuộc vào. Ứng dụng này cũng sử dụng lame_enc.dll, trong đó giới thiệu thêm một vài phụ thuộc.

Tôi đoán đây là một vấn đề phổ biến với các ứng dụng VB6 (mặc dù có thể tôi chỉ hút như một lập trình viên 10 năm trước). Có một số cài đặt ma thuật/updater ra khỏi đó mà làm cho chắc chắn rằng tất cả các phụ thuộc VB6 là những gì họ cần phải được cho một ứng dụng VB6 để hoạt động đúng?

Trả lời

1

Một tùy chọn là liên hệ với bộ phận hỗ trợ kỹ thuật của Microsoft. Thời gian chạy VB6 is fully supported trên Windows 7. Bạn có thể cần phải trả tiền cho một "sự cố hỗ trợ": hoặc nó có thể là miễn phí, ví dụ nếu bạn có một thuê bao MSDN (ý tưởng tốt để có được một).

+0

@MusiGenesis. Cảm ơn bạn đã chấp nhận câu trả lời này. Tôi tò mò. Bạn đã liên hệ với Microsoft và chúng có hữu ích không? Tôi chưa bao giờ thử nghiệm cam kết hỗ trợ VB6 của họ trên Windows 7, sẽ được quan tâm để biết làm thế nào dễ dàng là để có được chúng để giúp đỡ. – MarkJ

2

Cho phép người dùng chạy ứng dụng ở chế độ tương thích cho XP. Chỉ cần kéo một phím tắt vào màn hình nền, nhấp chuột phải, Thuộc tính. Sau đó, trên tab Tương thích, đặt nó thành "chạy trong chế độ tương thích cho:" và chọn "Windows XP (Gói Dịch vụ 3)". Và cũng có thể "vô hiệu hóa tỷ lệ hiển thị trên cài đặt DPI cao". Hãy xem điều đó có hữu ích không. Nó chỉ có thể.

2

Nếu Comaptibility Mode không hoạt động ở đó cũng là XP Mode. Điều này ảo hóa toàn bộ môi trường trong một máy ảo XP nhưng cũng cho phép nó tương tác với hệ điều hành máy chủ. Nó chỉ có sẵn cho Windows 7 mặc dù.

+0

Mẹo hay. Bố vợ tôi đã mua một quyển sổ tay mới với Windows7/64, chống lại lời khuyên của tôi rằng anh ta không thể chạy được nhiều thứ cũ của mình. Hóa ra tôi đã đúng. Bây giờ anh ta chạy máy ảo XP để chạy những thứ cũ của mình, và anh ta hạnh phúc. Cảm ơn lòng tốt 64-bit cho phép bạn bổ sung thêm RAM, vì vậy bạn có thể đủ khả năng chạy VM cho những thứ không hoạt động trong 64. Xin chờ một phút .... –

1

Chúng tôi chỉ có hành vi kỳ quặc với một số khách hàng đã cố chạy ứng dụng của chúng tôi trên Windows 7. Trong một trường hợp, thanh công cụ chính của ứng dụng (điều khiển tiêu chuẩn MSComctlLib.Toolbar) hoàn toàn trống (không có biểu tượng hoặc dấu phân cách nào) thanh xuất hiện). Chúng tôi đã bị hoang mang. Chương trình không gặp sự cố, các biểu tượng chỉ đơn giản là không có ở đó. Không có gì trong nhật ký lỗi của ứng dụng, không có gì trong nhật ký sự kiện Windows. Chúng tôi thậm chí còn đảm bảo rằng ứng dụng được định cấu hình để chạy trong Chế độ tương thích Windows XP, nhưng không có súc sắc. Theo như chúng tôi biết, các DLL chính xác đã được cài đặt và đăng ký, và chúng tôi đã chạy cùng một ứng dụng trên cùng một phiên bản của Windows 7 kể từ đó mà không có bất kỳ vấn đề.

Trong một quyết định khá mỉa mai, không lâu trước khi chúng tôi quyết định hỗ trợ Windows 7, đồng thời nói rằng chúng tôi sẽ không hỗ trợ chính thức Vista (mặc dù một số khách hàng đang chạy ứng dụng trên Vista mà không có bất kỳ vấn đề nào) . Lúc đầu, điều này có vẻ như là một quyết định kỳ quặc, nhưng có hai lý do chính đáng tại sao điều này có ý nghĩa:

  • máy tính mới Hầu hết sẽ có Windows 7 cài đặt sẵn, và hầu hết những khách hàng bỏ qua việc nâng cấp lên Vista do tất cả FUD xung quanh nó rất quan tâm đến việc nâng cấp từ XP lên Windows 7.

  • Windows 7 hỗ trợ XP Mode, cho phép bạn chạy ứng dụng trong máy ảo đang chạy Windows XP SP3. Một số khách hàng của chúng tôi đã đi tuyến đường này và không có ai báo cáo bất kỳ sự cố nào khi chạy ứng dụng của chúng tôi theo cách này. Bởi vì bạn đang chạy ứng dụng của bạn trong môi trường Windows XP thực tế, có rất ít cơ hội cho mọi thứ xảy ra sai.

+0

Tôi cho rằng mọi thứ đã chuyển từ 6 năm trước, nhưng bạn có cố gắng chạy ứng dụng của mình với tư cách là Quản trị viên không? (Tôi cho rằng trình cài đặt đã được chạy với tư cách Quản trị viên.) –

0

Tôi cũng sẽ bỏ phiếu cho XPMode.

Tuy nhiên, nếu bạn vẫn gặp sự cố, Dependency Walker là công cụ miễn phí tốt quét exe/dll/ocx và xây dựng sơ đồ cây của tất cả các mô-đun/dll phụ thuộc. Ngay cả khi không có sự cố này, việc khắc phục sự cố cài đặt cũng rất hữu ích.

http://www.dependencywalker.com/

Bên cạnh đó, chúng tôi đã có một số vấn đề trong quá khứ với các mục mà viết registry mà người dùng không có quyền bảo mật thích hợp đã gây ra vấn đề tương tự. Bạn có thể kiểm tra mã những chức năng nếu bạn có chúng.

1

Thử trình cài đặt của bên thứ ba như Installshield. Tôi có một ứng dụng VB6 mà không cài đặt và chạy đúng trên Win 7 bằng cách sử dụng trình cài đặt gốc, nhưng tôi khi tôi đặt nó thông qua một phiên bản gần đây của Installshield nó bây giờ hoạt động tốt.

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