LinuxでOLEエラー8004013Fを修正する方法



問題を排除するために楽器を試してください

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



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



必要なOLEライブラリ

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



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



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

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

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

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

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

読んだ4分