0

私が抱えている問題は、テスト ボックスと Windows XP マシンで RWLock.dll をロードしようとすると System.IO.FileLoadException が発生することです。

これは、Windows 2003 サーバー マシン (ほとんどの場合 32 ビット) に dll をロードしようとしたときにスローされる例外です。

System.IO.FileLoadException: 'rwlock, Version=1.0.3889.27926, Culture=neutral, PublicKeyToken=null' によってインポートされたプロシージャを読み込めませんでした。

ファイル名: 'rwlock, Version=1.0.3889.27926, Culture=neutral, PublicKeyToken=null' ---> System.Runtime.InteropServices.COMException (0x8007007F): 指定されたプロシージャが見つかりませんでした。(HRESULT からの例外: 0x8007007F)...

ただし、これを Windows 2007* サーバー マシン (64 ビット) で実行しようとしても問題はありませんでした。

何か案は?前もって感謝します :)

*windows 2008(おっと)

4

1 に答える 1

3

エラーメッセージは、RWLock.dllが別のDLLから存在しない関数をインポートしようとしていることを示しています。これはおそらく、RWLockが(「Windows2007Server」の代わりに)Windows 2008 Serverマシンに存在するAPI関数をインポートしようとしているが、Windows2003以前には存在しないことを意味します。

Dependency Walkerを使用して、何をロードしようとしているのか、どこで不足している関数を見つけようとしているのかを把握できますが、存在しないWindowsバージョンで使用できるようにすることはできません。

もう1つの可能性は、RWLockが提供する別のDLLに依存しているが、それを適切に再配布していないことです。DependencyWalkerもこれを支援します。

于 2011-01-14T19:55:53.330 に答える