Cách sửa lỗi OLE 8004013F trên Linux



Hãy Thử Công Cụ CủA Chúng Tôi Để LoạI Bỏ Các VấN Đề

Nếu bạn đang cố gắng chạy bất kỳ loại cơ sở dữ liệu hoặc macro nào trong môi trường dựa trên Wine trên bất kỳ loại triển khai GNU / Linux nào, thì bạn có thể gặp phải một số loại thông báo lỗi. Tại một số thời điểm trong quá trình diễn ra chương trình, cuối cùng bạn có thể thấy Lỗi OLE 8004013F cái hộp. Tập lệnh của bạn sau đó sẽ ngay lập tức ngừng thực thi. Nếu điều này xảy ra, thì nhiều khả năng bạn đang thiếu một thư viện mà tập lệnh của bạn cần để chạy. Trong một máy khách Windows gốc, các thư viện này được sử dụng để khớp các đối tượng bên trong tệp với máy chủ lưu trữ mẹ của chúng. Linux không có khả năng này, vì mỗi chương trình chạy trong Máy chủ X quản lý mọi thứ theo cách riêng của nó.



Trong môi trường Microsoft Windows nguyên bản, Delphi có thể sử dụng một đoạn mã nhỏ để mở Excel. Nếu bạn muốn một phiên bản Excel được nhúng và liên kết hoạt động với các đối tượng khác nhau, thì bạn có thể đã sử dụng eclApp: = CreateOleObject (‘Excel.Application’); làm như vậy. Bên trong Linux, bạn thậm chí có thể đã thử sử dụng OpenOffice theo cách này. Nếu bạn thấy Delphi đang ném một cái đáng sợ 8004013F lỗi tại bạn sau khi bạn cố gắng tạo một đối tượng OLE với một phiên bản của eclApp: = CreateOleObject (‘com.sun.star.ServiceManager’); thì có thể bạn đang gặp phải vấn đề phụ thuộc tương tự. Trước tiên, hãy xem mã của bạn để tìm bất kỳ lỗi chính tả nào. Đây là những nguyên nhân phổ biến nhất của lỗi ngay cả trước khi có liên quan đến các phụ thuộc. Sau khi bạn chắc chắn rằng bạn đã viết mọi thứ một cách chính xác và sau đó bạn có thể tiến hành khôi phục các thư viện cần thiết.



Các thư viện OLE cần thiết

Bạn cũng có thể gặp phải lỗi tương tự nếu bạn đang cố gắng sử dụng ứng dụng tổ chức Windows có tên là keynote-nf và nếu trường hợp đó xảy ra thì bạn có thể sử dụng quy trình tương tự để khắc phục. Tệp keynote.exe không đi kèm với trình cài đặt, vì vậy, việc sao chép nó vào thư mục Tệp Chương trình là điều thường thấy. Trong khi nó có thể chạy, bạn có thể gặp lỗi 8004013F nói trên hoặc một ngoại lệ 80004001 khác. Trong cả hai trường hợp, hãy tạo một thư mục bên trong Tệp Chương trình bằng lệnh mkdir hoặc trình quản lý tệp đồ họa của bạn. Gọi nó là KeyNote-NF và di chuyển tệp nhị phân keynote.exe sang nó.



Nếu bạn có quyền truy cập vào phân vùng Windows XP, Vista, 7, 8, 8.1 hoặc 10, thì bạn có thể thử sao chép tệp msftedit.dll từ C: Windows system32 thư mục KeyNote-NF mà bạn đã tạo. Bạn cũng nên sao chép tệp msls31.dll. Bạn cũng có thể có được cả hai thứ này từ đĩa CD cài đặt, nhưng bạn sẽ cần phải sử dụng lệnh mở rộng để tăng chúng. Trong cả hai trường hợp, hãy chạy chương trình và bạn sẽ thấy rằng nó hoạt động tốt.



Thunar, Nautilus và các trình quản lý tệp tương tự khác sẽ xác định keynote.exe là tệp thực thi DOS mà bạn có thể bỏ qua một cách an toàn. Đơn giản chỉ cần chạy nó như bạn đã làm trước đó. Khi bạn nhấp chuột phải để truy cập menu ngữ cảnh, bạn thực sự có thể nhận được một tùy chọn khuyến khích bạn chạy nó trong Wine. Chọn tùy chọn này để bắt đầu. Thay vào đó, chạy chương trình từ thiết bị đầu cuối sẽ cho phép bạn thấy bất kỳ thông báo lỗi nào có thể xuất hiện phía sau trong quá trình này. Trong một số trường hợp, bạn thực sự có thể nhận được cảnh báo về tên tệp khác với msftedit.dll hoặc msls31.dll, mà thay vào đó bạn nên nhận được cảnh báo. Giống như một lỗ hổng phụ thuộc Unix, về mặt lý thuyết, bạn có thể dành một khoảng thời gian để có được một thư mục chứa đầy các tệp khác nhau.

Khi bạn gặp sự cố tương tự với mã Excel hoặc Delphi, hãy điều hướng đến thư mục chứa tệp thực thi mà bạn đang cố chạy và đặt hai tệp thư viện được liên kết động vào thư mục đó. Bạn có thể cấp cho Wine toàn quyền truy cập vào những thứ này bằng cách đưa chúng vào ~ / .wine / drive_c / Windows / system32 nhưng điều này có thể ghi đè một số tệp mà Wine cài đặt theo mặc định.

Vì các DLL này vượt trội về một số mặt so với các giải pháp nguồn mở mà Wine sử dụng, chúng cũng có thể hỗ trợ liên kết các đối tượng trong các chương trình khác mà bạn có thể chạy, nhưng nhiều người dùng không thích ý tưởng làm ô nhiễm cài đặt Linux của họ bằng mã nguồn đóng các tập tin. Chỉ đưa chúng vào các thư mục mà chương trình của bạn thực sự sử dụng là cách tốt nhất để giải quyết vấn đề này. Bạn thậm chí có thể tạo thư mục cho các phụ kiện Windows thực tế mà bạn đã sao chép từ một phân vùng khác. Ví dụ: một số người dùng gặp phải các loại sự cố này nếu họ đang sử dụng tập lệnh bash hoặc mã Delphi để khởi động các phiên bản WordPad truyền thống. Wine có thể đã cài đặt phiên bản write.exe của chính nó, nhưng không có gì ngăn cản bạn tạo một thư mục trong “~ / .Wine / drive_c / Program Files /” và đặt write.exe, msftedit.dll và msls31.dll vào nó, sau đó tham chiếu thư mục đó với mã của bạn. Vì Wine bao gồm phiên bản nguyên thủy của trình thông dịch cmd từ Microsoft Windows NT, bạn cũng có thể tham chiếu các chương trình này trong các tệp tập lệnh Batch nếu muốn. Hãy đảm bảo mở đầu các lệnh này bằng @ECHO OFF, nếu không mỗi lệnh sẽ xuất hiện như thể bạn đã nhập nó vào một dòng lệnh và sau đó nhấn enter để thực thi lần lượt.

Nhiều trang web trên Internet cung cấp các đối tượng DLL để tải xuống và bạn có thể muốn sử dụng một trong các kho lưu trữ này nếu bạn chưa cài đặt Windows trên một phân vùng khác. Mặc dù chúng thực sự có thể thuận tiện, nhưng hãy đảm bảo bạn thực hiện quét phần mềm độc hại trên msftedit.dll và msls31.dll nếu bạn buộc phải lấy chúng theo cách này. Bạn không nên xử lý các kho lưu trữ này giống như cách xử lý các kho lưu trữ chính thức được tài trợ bởi các dự án Ubuntu, Debian và Fedora.

Cũng nên nhớ rằng nếu bạn buộc phải mua chúng theo cách này, điều đó có thể gây ra lo ngại về việc cấp phép nếu bạn đang phân phối lại mã của mình. Không cài đặt bất kỳ tệp thực thi nào mà bất kỳ kho lưu trữ nào như vậy yêu cầu, vì các tệp thực thi này thường không phải là một dạng phần mềm quảng cáo được thiết kế để ảnh hưởng đến người dùng trong môi trường phần mềm Microsoft Windows chính thức thực tế. Điều tương tự cũng xảy ra đối với bất kỳ trường hợp nào mà bạn có thể được yêu cầu tải xuống một số thư viện khác nhau bên ngoài hai thư viện này, vì chúng có thể trở thành con mồi cho cùng một loại cuộc xâm lược phần mềm quảng cáo.

4 phút đọc