0

次のように、Delphi プロジェクトから LoadLibrary を使用して DLL をロードしています。

DLLHandle := LoadLibrary('my.dll');
if (DLLHandle = 0) then ShowMessage(SysErrorMessage(GetLastError));

DLL が存在するディレクトリは、Windows PATH 環境変数に含まれています。このプロジェクトを Delphi 内から実行すると、DLL がロードされません。ただし、同じコードを Windows から直接実行すると、DLL は完全に読み込まれます。

ここで何が欠けていますか?[ツール] -> [オプション]、[環境オプション] -> [Delphi オプション] -> [ライブラリ] - [Win32] -> [ライブラリ パス] にディレクトリを追加して、Delphi に DLL のディレクトリを調べるように明示的に指示しようとしました。(完全な PEBKAC のように感じます。近い将来、自分自身が恥ずかしくなることを予期しています :) ...)

前もって感謝します!

4

1 に答える 1

2

ほとんどの場合、私が同様の問題を抱えている場合(デバッガーからではなくWindowsから動作します)、それは「ユーザーオーバーライド」が原因です

([プロジェクト]-> [オプション]メニュー、[デバッガー]-> [環境ブロック])

「Windowsパス」のユーザーオーバーライドがある可能性があります。これが、デバッガーから実行したときに機能しない理由です。

于 2011-01-10T18:07:39.757 に答える