Nếu bạn đang cố 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 một số loại thông báo lỗi. Tại một số thời điểm trong quy trình chương trình, cuối cùng bạn có thể thấy Lỗi OLE 8004013F 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ì rất có thể bạn đang thiếu thư viện mà tập lệnh của bạn cần chạy. Trong 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ủ gốc 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 đều 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ì có thể bạn đã 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 8004013F đáng sợ lỗi xảy ra với bạn sau khi bạn cố gắng tạo một đối tượng OLE với phiên bản của eclApp:=CreateOleObject('com.sun.star.ServiceManager'); đoạn mã, 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 qua mã của bạn xem có lỗi chính tả nào không. Đây là những nguyên nhân gây ra lỗi phổ biến nhất ngay cả trước khi có sự phụ thuộc. Sau khi chắc chắn rằng mình đã viết mọi thứ chính xác thì bạn có thể tiến hành khôi phục các thư viện cần thiết.
Thư viện OLE cần thiết
Bạn cũng có thể gặp lỗi tương tự nếu bạn đang cố sử dụng ứng dụng sắp xếp Windows có tên keynote-nf và nếu đúng như vậy 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, do đó, việc sao chép nó vào thư mục Tệp chương trình là điều bình thường. Mặc dù nó có thể chạy nhưng bạn có thể gặp phải lỗi 8004013F nêu 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à 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\ vào 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ể lấy cả hai thứ này từ đĩa CD cài đặt, nhưng bạn sẽ cần sử dụng lệnh mở rộng để tăng cường chúng. Trong cả hai trường hợp, hãy chạy chương trình và bạn sẽ thấy 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 đây. 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 nó. Thay vào đó, việc chạy chương trình từ thiết bị đầu cuối sẽ cho phép bạn xem bất kỳ thông báo lỗi nào có thể xuất hiện 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 tên tệp msftedit.dll hoặc msls31.dll mà thay vào đó bạn nên nhận. Giống như một lỗ hổng phụ thuộc Unix, về mặt lý thuyết bạn có thể dành chút 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 vấn đề 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 đặt chúng vào ~/.wine/drive_c/Windows/system32 cũng vậy, nhưng điều này có thể ghi đè lên một số tệp mà Wine cài đặt theo mặc định.
Vì các DLL này vượt trội hơn về mặt nào đó so với các giải pháp nguồn mở mà Wine sử dụng, nên 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 các tệp nguồn đóng. Chỉ đặt chúng trong 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ừ 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 riêng 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 đó, sau đó tham chiếu thư mục đó bằng 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 nên bạn cũng có thể tham khảo các chương trình này trong các tệp tập lệnh Batch nếu muốn. Hãy nhớ mở đầu những 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 rồi nhấn enter để thực thi lần lượt lệnh đó.
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 đối xử với các kho lưu trữ này giống như cách bạn đối xử với các kho 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 thì đ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ì những 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ế để tác độ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 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 ngoài hai thư viện này, vì chúng có thể trở thành nạn nhân của cùng một kiểu xâm lược phần mềm quảng cáo.
GIỚI THIỆU TÁC GIẢ
Mũi tên Kevin
Kevin Arrows là một chuyên gia công nghệ giàu kinh nghiệm và hiểu biết với hơn một thập kỷ kinh nghiệm trong ngành. Anh có chứng chỉ Chuyên gia Công nghệ được Chứng nhận của Microsoft (MCTS) và có niềm đam mê sâu sắc trong việc cập nhật những phát triển công nghệ mới nhất. Kevin đã viết nhiều về nhiều chủ đề liên quan đến công nghệ, thể hiện chuyên môn và kiến thức của mình trong các lĩnh vực như phát triển phần mềm, an ninh mạng và điện toán đám mây. Những đóng góp của ông cho lĩnh vực công nghệ đã được các đồng nghiệp công nhận và tôn trọng rộng rãi, đồng thời ông được đánh giá cao nhờ khả năng giải thích các khái niệm kỹ thuật phức tạp một cách rõ ràng và ngắn gọn.