2016-07-20 9 views
1

私は関数をエクスポートするDLLを持っています。InternetCrackUrlはFALSEを返し、GetLastErrorは120です

この機能のある時点で、WininetのInternetCrackUrl()が呼び出されます。

すべてがInternetCrackUrl戻りFALSEGetLastError戻り120(ERROR_CALL_NOT_IMPLEMENTED)1台の特定のコンピュータ、上を除いて正常に動作します。

私はコンピュータに関して特別な何かを見ることができません、それはWin10 PROのデスクトップマシンです。これは、Win10を搭載した他のコンピュータであっても、異なるバージョンのWindowsを搭載した異なるコンピュータ上のあらゆる場所で動作します。

私はまた、InternetCrackUrlと呼ばれるテストスタンドアロンアプリケーションを作成しました。これも機能し、DLLについての何かでなければならないと考えています。

他に何が確認できるか考えてみませんか?

+4

'InternetCrackUrl()'がDLLで呼び出されたときにこのエラーで失敗することはありませんが、同じマシンのアプリで呼び出されたときには全く失敗しません。同じWinInet DLLで同じ関数を呼び出す必要があります。だから、これは私がOSの中でさらに故障していると思うようになります。 WinInetが内部で使用する依存関係が失敗している可能性があり、エラーが 'InternetCraskUrl()'にバブリングしている可能性があります。たぶん、あなたのDLL、またはそれを読み込むアプリケーションは、スタンドアロンのアプリケーションがロードされているWinInetの別のバージョンを読み込むサイドバイサイドマニフェストを持っていますか?またはそのようなもの。 –

答えて

0

私はプロセスエクスプローラを使用して、WinInet.dllがロードされたことを確認しました。

私のDLLは、使用していたアプリケーションと同じディレクトリにあることがわかりました。 同じディレクトリには1997年の古代版のWININET.DLLもありました。そこに誰かがコピーしていなければならず、それが私のDLLがロードしていたものです。

古いWININET.DLLを削除したとき、System32のものがロードされ、今は動作します。

関連する問題