0

最初の DLL は完全にロードできますが、2 番目の DLL をロードしようとすると失敗します。

情報:

  • OS: Windows Vista
  • FPC: 2.4.4
  • 2 番目の DLL を EXE からロードしても、最初の DLL 内からロードしても、2 番目の DLL は失敗します。
  • 最初の DLL が静的にロードされても、2 番目の DLL は失敗します。
  • ロードする 2 番目の DLL はどちらでもかまいません。
  • DLL のソース コードを管理しています。
  • 外部依存関係はありません。
  • 非常に単純な DLL で発生します。
  • GetLastError() は 487 エラー (ERROR_INVALID_ADDRESS) を返します。
  • FPC で生成された DLL でのみ発生します。

私には欠けているものがあり、それを理解することはできません。

ありがとう

回答: わかりました。問題が見つかりました。fp.cfg ファイルに -WN コマンド ライン スイッチがありました。

4

1 に答える 1

0

Win32 LoadLibrary() のラッパーを呼び出していると思います。

複数の異なる .dll を問題なく起動できるはずです。

提案: GetLastError をチェックして、エラー コードを確認してください

また:

  • おそらく、その特定の .dll、または使用方法に関するものです。

  • 動的にロードする .exe、.dll、および任意の .dll に対して「依存」ツールを実行します。すべての依存関係が解決されていることを確認してください。

于 2011-07-08T03:45:03.387 に答える