1

次のようなdllをロードしようとしています:

dll_handle = LoadLibraryA(QString("%1\\module.dll")
                        .arg(QApplication::applicationDirPath().replace("/", "\\"))
                        .toLocal8Bit().data());

LoadLibraryA に渡す結果のファイル名は正しく、ファイルは存在し、プロセスによって読み取り可能です。何が問題ですか?

4

1 に答える 1

8

GetLastErrorレポート126、すなわちERROR_MOD_NOT_FOUND。明らかに、モジュールが見つかりません。

これには2つの明らかな原因があります。

  1. ロードしようとしているモジュールが見つかりません。
  2. ロードしようとしているモジュールは見つかりましたが、依存しているモジュールの1つが見つかりません。

プロファイルモードのDependencyWalkerを使用してこれをデバッグすることをお勧めします。これにより、実行時にアプリが監視され、見つからないモジュールが正確にわかります。

最後に、この時代では、あなたは本当にを選ぶべきですLoadLibraryW

于 2012-08-31T12:26:43.730 に答える