私は複数の可能性のDLLのいずれかを使用できるWindows 32ビットプログラムを書いています。だから、SysUtils.SafeLoadLibrary
を使用して、順番に各DLLをロードしようとするとロードが成功した場合、それは、そのDLLを使用しています。DLLを読み込んでも依存関係が見つからない場合は、エラーをキャッチする方法はありますか?
は、残念ながら、これらのDLLのいくつかは、静的に他のDLLにリンクされています。これらのdllは、コンピュータに存在しない可能性があります。 [いくつかのdll名]は、コンピュータから欠落しているため、[myprogram.exeという]システムエラー
プログラムが起動できません:その場合、私は
[MYPROGRAM]は私に言ってダイアログを取得します。この問題を修正するプログラムを再インストールしてみてください。」
そのダイアログで[OK]ボタンを押した後、プログラムはエラーコードを取得し、正常に動作し他のDLLのいずれかをしようとします。
よりもむしろ示しますその私は私のプログラムは黙ってそれを無視したいユーザーにダイアログ
どのように私は
場合、重要なことを成し遂げることができます。?は私のプログラムはDelphi(デルファイ)2007年に、Windowsのバージョンを書かれては、Windows 8.1であるが、プログラムは他のWindowsバージョンでも動作する> = Windows XP。
私はSetErrorMode(SEM_FAILCRITICALERRORS)
を試してみましたが、それはどんな違いがありませんでした。
[この質問](https://stackoverflow.com/q/44430822/1889329)を参照してください。 – IInspectable
@IInspectableありがとうございますが、答えは1つしかありません。私がそのコメントを正しく理解していれば、それを達成するためにDLLを修正する必要がありますが、それはできません。 – dummzeuch
それはあなたがロードしようDLLをコントロールするかどうか、あなたの質問から明らかではなかったです。 – IInspectable