Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การแก้ไขปัญหา >> Linux

การแก้ไขข้อผิดพลาด OLE 8004013F ใน Wine บน Linux:คำแนะนำทีละขั้นตอน

หากคุณกำลังพยายามเรียกใช้ฐานข้อมูลหรือมาโครใดๆ ในสภาพแวดล้อมแบบ Wine ในการใช้งาน GNU/Linux ประเภทใดก็ตาม คุณอาจพบข้อความแสดงข้อผิดพลาดบางประเภท ณ จุดใดจุดหนึ่งในระหว่างการไหลของโปรแกรม คุณอาจเห็น OLE Error 8004013F ในที่สุด กล่อง สคริปต์ของคุณจะหยุดดำเนินการทันที หากสิ่งนี้เกิดขึ้น แสดงว่าคุณกำลังขาดไลบรารีที่สคริปต์ของคุณจำเป็นต้องเรียกใช้ ในไคลเอนต์ Windows ดั้งเดิม ไลบรารีเหล่านี้ใช้เพื่อจับคู่วัตถุภายในไฟล์กับโฮสต์หลัก Linux ไม่มีความสามารถนี้ เนื่องจากแต่ละโปรแกรมที่ทำงานบน X Server จะจัดการสิ่งต่าง ๆ ด้วยวิธีของตัวเอง

ภายใต้สภาพแวดล้อม Microsoft Windows ดั้งเดิม Delphi สามารถใช้โค้ดเล็กน้อยเพื่อเปิด Excel หากคุณต้องการให้อินสแตนซ์ Excel แบบฝังและเชื่อมโยงทำงานกับออบเจ็กต์ที่แตกต่างกัน คุณอาจใช้ eclApp:=CreateOleObject('Excel.Application'); ที่จะทำเช่นนั้น ภายใน Linux คุณอาจลองใช้ OpenOffice ด้วยวิธีนี้ด้วยซ้ำ หากคุณพบว่า Delphi กำลังขว้าง 8004013F ที่น่าสะพรึงกลัว เกิดข้อผิดพลาดกับคุณหลังจากที่คุณพยายามสร้างวัตถุ OLE ด้วยอินสแตนซ์ของ eclApp:=CreateOleObject('com.sun.star.ServiceManager'); ตัวอย่างข้อมูล แสดงว่าคุณอาจประสบปัญหาการพึ่งพาแบบเดียวกัน ขั้นแรก ตรวจดูโค้ดของคุณว่ามีคำสะกดผิดหรือไม่ สิ่งเหล่านี้เป็นสาเหตุที่พบบ่อยที่สุดของข้อผิดพลาดก่อนที่จะมีการขึ้นต่อกันด้วยซ้ำ เมื่อคุณแน่ใจว่าคุณได้เขียนทุกอย่างถูกต้องแล้ว จากนั้นคุณก็สามารถดำเนินการกู้คืนไลบรารีที่จำเป็นได้

ไลบรารี OLE ที่จำเป็น

คุณอาจพบข้อผิดพลาดเดียวกันหากคุณพยายามใช้แอปพลิเคชันตัวจัดระเบียบ Windows ชื่อ keynote-nf และหากเป็นเช่นนั้น คุณสามารถใช้กระบวนการเดียวกันเพื่อแก้ไขได้ ไฟล์ keynote.exe ไม่มีโปรแกรมติดตั้ง ดังนั้นจึงเป็นเรื่องปกติที่จะคัดลอกไฟล์ไปยังไดเร็กทอรี Program Files แม้ว่ามันอาจจะทำงาน คุณอาจพบข้อผิดพลาด 8004013F ข้างต้นหรือข้อยกเว้น 80004001 อื่น ไม่ว่าในกรณีใด ให้สร้างไดเร็กทอรีภายใน Program Files ด้วยคำสั่ง mkdir หรือตัวจัดการไฟล์กราฟิกของคุณ เรียกมันว่า KeyNote-NF และย้ายไบนารีของ keynote.exe ไปไว้ที่นั่น

หากคุณมีสิทธิ์เข้าถึงพาร์ติชัน Windows XP, Vista, 7, 8, 8.1 หรือ 10 คุณอาจต้องการลองคัดลอกไฟล์ msftedit.dll จาก C:\Windows\system32\ ไดเร็กทอรีไปยังไดเร็กทอรี KeyNote-NF ที่คุณสร้างขึ้น คุณควรคัดลอกไฟล์ msls31.dll ด้วย คุณสามารถรับทั้งสองสิ่งนี้ได้จากซีดีการติดตั้ง แต่คุณจำเป็นต้องใช้คำสั่งขยายเพื่อขยายไฟล์เหล่านั้น ไม่ว่าในกรณีใด ให้รันโปรแกรมแล้วคุณจะพบว่าโปรแกรมทำงานได้ดี

Thunar, Nautilus และโปรแกรมจัดการไฟล์อื่นที่คล้ายคลึงกันจะระบุ keynote.exe ว่าเป็นไฟล์ปฏิบัติการ DOS ซึ่งคุณสามารถเพิกเฉยได้อย่างปลอดภัย เพียงเรียกใช้เหมือนที่คุณเคยทำมาก่อน เมื่อคุณคลิกขวาเพื่อเข้าถึงเมนูบริบท คุณอาจได้รับตัวเลือกที่สนับสนุนให้คุณเรียกใช้ภายใต้ไวน์ เลือกตัวเลือกนี้เพื่อเริ่มต้น การรันโปรแกรมจากเทอร์มินัลแทนจะทำให้คุณเห็นข้อความแสดงข้อผิดพลาดที่อาจทำให้พวกเขาปวดหัวในกระบวนการนี้ ในบางกรณี คุณอาจได้รับคำเตือนเกี่ยวกับชื่อไฟล์ที่แตกต่างจาก msftedit.dll หรือ msls31.dll ซึ่งคุณควรได้รับแทน เช่นเดียวกับรูกระต่ายที่ต้องพึ่งพา Unix ในทางทฤษฎี คุณอาจใช้เวลาพอสมควรในการรับไดเร็กทอรีที่เต็มไปด้วยไฟล์ต่างๆ

เมื่อคุณประสบปัญหาเดียวกันกับรหัส Excel หรือ Delphi ให้นำทางไปยังไดเร็กทอรีที่มีไฟล์ปฏิบัติการที่คุณพยายามเรียกใช้และวางไฟล์ไลบรารีที่เชื่อมโยงแบบไดนามิกสองไฟล์ไว้ในไดเร็กทอรีนั้น คุณสามารถให้ไวน์เข้าถึงสิ่งเหล่านี้ได้ทั้งหมดโดยใส่ไว้ใน ~/.wine/drive_c/Windows/system32 เช่นกัน แต่การดำเนินการนี้อาจเขียนทับไฟล์บางไฟล์ที่ Wine ติดตั้งเป็นค่าเริ่มต้น

เนื่องจาก DLL เหล่านี้เหนือกว่าโซลูชันโอเพ่นซอร์สที่ Wine ใช้ในบางด้าน พวกเขาจึงสามารถช่วยในการเชื่อมโยงอ็อบเจ็กต์ในโปรแกรมอื่นที่คุณอาจใช้งานอยู่ได้ แต่ผู้ใช้จำนวนมากไม่ชอบแนวคิดที่จะทำให้การติดตั้ง Linux ของตนเสียหายด้วยไฟล์โอเพ่นซอร์ส การใส่ไว้เฉพาะในไดเร็กทอรีที่โปรแกรมของคุณใช้จริงเป็นวิธีที่ดีที่สุดในการแก้ปัญหานี้ คุณสามารถสร้างไดเรกทอรีสำหรับอุปกรณ์ Windows จริงที่คุณคัดลอกมาจากพาร์ติชันอื่นได้ ตัวอย่างเช่น ผู้ใช้บางรายประสบปัญหาประเภทนี้หากใช้สคริปต์ทุบตีหรือโค้ด Delphi เพื่อเริ่มอินสแตนซ์ WordPad แบบดั้งเดิม Wine อาจติดตั้ง write.exe เวอร์ชันของตัวเองแล้ว แต่ไม่มีอะไรหยุดคุณจากการสร้างไดเร็กทอรีใน “~/.wine/drive_c/Program Files/” และวาง write.exe, msftedit.dll และ msls31.dll ลงไป จากนั้นอ้างอิงไดเรกทอรีนั้นด้วยรหัสของคุณ เนื่องจาก Wine มีเวอร์ชันดั้งเดิมของล่าม cmd จาก Microsoft Windows NT คุณจึงสามารถอ้างอิงโปรแกรมเหล่านี้ในไฟล์สคริปต์ชุดงานได้หากต้องการ ตรวจสอบให้แน่ใจว่าได้นำหน้าสิ่งเหล่านี้ด้วย @ECHO OFF ไม่เช่นนั้นแต่ละคำสั่งจะปรากฏราวกับว่าคุณได้พิมพ์คำสั่งนั้นในบรรทัดคำสั่ง จากนั้นกด Enter เพื่อดำเนินการทีละคำสั่ง

เว็บไซต์หลายแห่งบนอินเทอร์เน็ตเสนอออบเจ็กต์ DLL ให้ดาวน์โหลด และอาจดึงดูดใจหากคุณไม่มีการติดตั้ง Windows บนพาร์ติชันอื่น แม้ว่าพวกเขาจะสะดวกอย่างแน่นอน แต่ให้แน่ใจว่าคุณทำการสแกนมัลแวร์บน msftedit.dll และ msls31.dll หากคุณถูกบังคับให้รับมันด้วยวิธีนี้ คุณไม่ควรปฏิบัติต่อที่เก็บข้อมูลเหล่านี้ในลักษณะเดียวกับที่คุณปฏิบัติต่อที่เก็บข้อมูลอย่างเป็นทางการที่ได้รับการสนับสนุนจากโครงการ Ubuntu, Debian และ Fedora

โปรดจำไว้ด้วยว่าหากคุณถูกบังคับให้รับสิ่งเหล่านี้ในลักษณะนี้อาจก่อให้เกิดข้อกังวลด้านสิทธิ์การใช้งานหากคุณแจกจ่ายโค้ดของคุณอีกครั้ง อย่าติดตั้งโปรแกรมปฏิบัติการใดๆ ที่พื้นที่เก็บข้อมูลดังกล่าวถามถึงอย่างใดอย่างหนึ่ง เนื่องจากโปรแกรมปฏิบัติการเหล่านี้มักไม่ใช่รูปแบบของแอดแวร์ที่ออกแบบมาเพื่อมีอิทธิพลต่อผู้ใช้สภาพแวดล้อมซอฟต์แวร์ Microsoft Windows อย่างเป็นทางการจริง เช่นเดียวกับกรณีที่คุณอาจต้องดาวน์โหลดไลบรารี่ที่แตกต่างกันจำนวนหนึ่งนอกเหนือจากไลบรารีทั้งสองนี้ เนื่องจากไลบรารีเหล่านี้อาจตกเป็นเหยื่อของการบุกรุกของแอดแวร์ประเภทเดียวกันได้

เกี่ยวกับผู้เขียน

การแก้ไขข้อผิดพลาด OLE 8004013F ใน Wine บน Linux:คำแนะนำทีละขั้นตอน

เควิน แอร์โรว์ส

Kevin Arrows เป็นผู้เชี่ยวชาญด้านเทคโนโลยีที่มีประสบการณ์สูงและมีความรู้และมีประสบการณ์ในอุตสาหกรรมมานานกว่าทศวรรษ เขาได้รับการรับรองจาก Microsoft Certified Technology Specialist (MCTS) และมีความมุ่งมั่นอย่างแรงกล้าที่จะติดตามข่าวสารเกี่ยวกับการพัฒนาเทคโนโลยีล่าสุด Kevin ได้เขียนหัวข้อที่เกี่ยวข้องกับเทคโนโลยีอย่างกว้างขวาง โดยนำเสนอความเชี่ยวชาญและความรู้ของเขาในด้านต่างๆ เช่น การพัฒนาซอฟต์แวร์ ความปลอดภัยทางไซเบอร์ และการประมวลผลแบบคลาวด์ การมีส่วนร่วมของเขาในด้านเทคโนโลยีได้รับการยอมรับและเคารพอย่างกว้างขวางจากเพื่อนร่วมงานของเขา และเขาได้รับการยกย่องอย่างสูงจากความสามารถของเขาในการอธิบายแนวคิดทางเทคนิคที่ซับซ้อนในลักษณะที่ชัดเจนและรัดกุม