Linux
 Computer >> コンピューター >  >> トラブルシューティング >> Linux

Linux 上の Wine での OLE エラー 8004013F の解決:ステップバイステップ ガイド

あらゆる種類の GNU/Linux 実装上の Wine ベースの環境で、あらゆる種類のデータベースまたはマクロを実行しようとすると、何らかのエラー メッセージが表示される可能性があります。プログラム フローのある時点で、最終的にOLE エラー 8004013F が表示される場合があります。 箱。スクリプトはすぐに実行を停止します。これが起こった場合、スクリプトを実行する必要があるライブラリが不足している可能性が高くなります。ネイティブ Windows クライアントでは、これらのライブラリは、ファイル内のオブジェクトとその親ホストを照合するために使用されます。 Linux にはこの機能がありません。X サーバーで実行されている各プログラムが独自の方法で管理するためです。

ネイティブの Microsoft Windows 環境では、Delphi は小さなコードを使用して Excel を開くことができます。 Excel の埋め込みおよびリンクされたインスタンスをさまざまなオブジェクトで動作させたい場合は、eclApp:=CreateOleObject(‘Excel.Application’); を使用した可能性があります。 そうするために。 Linux の内部では、この方法で OpenOffice を使用しようとしたことさえあるかもしれません。デルフィが恐ろしい8004013Fを投げているのを見つけたら? eclApp:=CreateOleObject(‘com.sun.star.ServiceManager’); のインスタンスを使用して OLE オブジェクトを作成しようとすると、エラーが発生します。 スニペットの場合は、おそらく同じ依存関係の問題に悩まされていると思われます。まず、コードにスペルミスがないか調べてください。これらは、依存関係が関係する前であっても、エラーの最も一般的な原因です。すべてを正しく記述したことを確認したら、必要なライブラリのリカバリに進むことができます。

必要な OLE ライブラリ

keynote-nf という Windows オーガナイザー アプリケーションを使用しようとした場合にも、同じエラーが発生する可能性があります。その場合は、同じプロセスを使用して問題を解決できます。 keynote.exe ファイルにはインストーラーが付属していないため、Program Files ディレクトリにコピーするのが一般的です。実行中に、上記の 8004013F エラーまたは別の 80004001 例外が発生する可能性があります。どちらの場合も、mkdir コマンドまたはグラフィカル ファイル マネージャーを使用して、Program Files 内にディレクトリを作成します。これを KeyNote-NF と名付け、keynote.exe バイナリをそこに移動します。

Windows XP、Vista、7、8、8.1、または 10 のパーティションにアクセスできる場合は、C:\Windows\system32\ から msftedit.dll ファイルをコピーしてみてください。 ディレクトリを作成した KeyNote-NF ディレクトリにコピーします。 msls31.dll ファイルもコピーする必要があります。これらの両方をインストール CD から入手することもできますが、拡張するには Expand コマンドを使用する必要があります。どちらの場合でも、プログラムを実行すると、正常に動作することがわかります。

Thunar、Nautilus、およびその他の同様のファイル マネージャーは、keynote.exe を DOS 実行可能ファイルとして識別しますが、これは無視しても問題ありません。以前と同じように実行するだけです。右クリックしてコンテキスト メニューにアクセスすると、Wine で実行することを促すオプションが実際に表示される場合があります。開始するには、このオプションを選択します。代わりにターミナルからプログラムを実行すると、プロセス中に発生する可能性のあるエラー メッセージを確認できます。場合によっては、実際には msftedit.dll または msls31.dll とは異なるファイル名に関する警告が表示されることがあります。代わりに、msftedit.dll または msls31.dll を取得する必要があります。 Unix の依存関係のウサギの穴と同じように、理論的には、さまざまなファイルでいっぱいのディレクトリを取得するのに時間を費やすことができます。

Excel または Delphi コードで同じ問題が発生した場合は、実行しようとしている実行可能ファイルが含まれるディレクトリに移動し、動的にリンクされた 2 つのライブラリ ファイルをそのディレクトリに配置します。これらを ~/.wine/drive_c/Windows/system32 に置くことで、Wine にこれらへの完全なアクセスを許可できます。 ただし、これにより、Wine がデフォルトでインストールするファイルの一部が上書きされる可能性があります。

これらの DLL は、Wine が使用するオープンソース ソリューションよりもいくつかの点で優れているため、実行する他のプログラム内のオブジェクトをリンクするのにも役立ちますが、多くのユーザーは、Linux インストールをクローズド ソース ファイルで汚染するという考えを好みません。この問題を解決するには、プログラムが実際に使用するディレクトリにのみファイルを配置することが最善の方法です。別のパーティションからコピーした実際の Windows アクセサリ用のディレクトリを作成することもできます。たとえば、一部のユーザーは、bash スクリプトまたは Delphi コードを使用して従来のワードパッド インスタンスを起動している場合に、この種の問題を経験します。 Wine は独自のバージョンの write.exe をインストールしている可能性がありますが、「~/.wine/drive_c/Program Files/」 にディレクトリを作成することを妨げるものはありません。 write.exe、msftedit.dll、msls31.dll をそこに配置し、コードでそのディレクトリを参照します。 Wine には Microsoft Windows NT の cmd インタープリタのプリミティブ バージョンが含まれているため、必要に応じてバッチ スクリプト ファイルでこれらのプログラムを参照することもできます。これらの先頭に必ず @ECHO OFF を付けてください。そうしないと、各コマンドはコマンド ラインに入力して Enter キーを押して順番に実行したかのように表示されます。

インターネット上の多くのサイトでは、ダウンロード用の DLL オブジェクトが提供されており、別のパーティションに Windows がインストールされていない場合は、これらのリポジトリのいずれかを使用したくなるかもしれません。確かに便利ではありますが、この方法で取得する必要がある場合は、必ず msftedit.dll および msls31.dll に対してマルウェア スキャンを実行してください。これらのリポジトリは、Ubuntu、Debian、Fedora プロジェクトが主催する公式リポジトリと同じように扱うべきではありません。

この方法で取得することを強制された場合、コードを再配布する場合にライセンスの問題が発生する可能性があることにも留意してください。このようなリポジトリで要求される実行可能ファイルもインストールしないでください。これらの実行可能ファイルは、多くの場合、実際の公式 Microsoft Windows ソフトウェア環境のユーザーに影響を与えるように設計されたアドウェアの一種であるためです。これら 2 つ以外の多数の異なるライブラリをダウンロードする必要がある場合にも同様のことが当てはまります。これらのライブラリは、同じ種類のアドウェア侵入の餌食になる可能性があるためです。

著者について

Linux 上の Wine での OLE エラー 8004013F の解決:ステップバイステップ ガイド

ケビン・アロウズ

Kevin Arrows は、10 年以上の業界経験を持つ、経験と知識が豊富なテクノロジー スペシャリストです。彼は Microsoft Certified Technology Specialist (MCTS) 認定を取得しており、最新の技術開発について常に最新の情報を入手することに深い情熱を持っています。 Kevin は、ソフトウェア開発、サイバーセキュリティ、クラウド コンピューティングなどの分野での専門知識と専門知識を示し、テクノロジー関連の幅広いトピックについて幅広く執筆しています。テクノロジー分野への彼の貢献は同僚から広く認められ、尊敬されており、複雑な技術概念を明確かつ簡潔に説明する能力が高く評価されています。


  1. マニュアルページでの楽な文字列検索:ヒントとコツ

    man コマンドを使用すると、名前がわかっているコマンドに関する情報を検索できます。ただし、コマンドの名前を覚えていないと、少し難しいかもしれません。また、bash や mplayer のような非常に長い巨大な man ページを見ている場合もあり、テキスト内で探している内容を見つけるのが難しい場合があります。幸いなことに、この分野で役立ついくつかのトリックがあります。 ターミナルを開くことから始めたいと思います。 Ubuntu Unity Dash からターミナルという単語を検索するか、Ctrl+Alt+T を押してターミナルを開きます。 Xfce4、Cinnamon、KDE、および LXD

  2. Linux での「Docker デーモンに接続できません」エラーの解決

    Linux ターミナルで「Docker デーモンに接続できません」というエラーが表示された場合は、非常に混乱するかもしれません。これが表示されたときには Docker デーモンがすでに実行されている可能性が高いためです。確実にそうなるようにする必要がありますが、このエラーがサービスが開始されていないことと関係がないことがわかると、おそらく困惑するでしょう。これは主に、Docker グループに自分自身を追加していないユーザーにスローされます。 Docker は Linux システム上に別のユーザー グループを発行し、そこに追加されていないユーザー アカウントを持つユーザーは接続できません。デー