InternetCrackUrl returns FALSE,GetLastError 为 120

InternetCrackUrl returns FALSE, GetLastError is 120

我有一个导出函数的 DLL。

在该函数的某个时刻,调用了来自 Wininet 的 InternetCrackUrl()

一切正常,除了一台特定的计算机,其中 InternetCrackUrl returns FALSEGetLastError returns 120 (ERROR_CALL_NOT_IMPLEMENTED).

我看不出这台电脑有什么特别之处,就是一台Win10 PRO的台式机。它在其他任何地方都可以工作,在装有不同版本 Windows 的不同计算机上,甚至在装有 Win10 的其他计算机上。

我还制作了一个仅调用 InternetCrackUrl 的测试独立应用程序,它也能正常工作,这让我相信它一定是关于 DLL 的。

关于我还可以检查什么的任何想法?

我使用 Process Explorer 检查加载了哪个 WinInet.dll

我发现我的 DLL 与正在使用它的应用程序位于同一目录中。 在同一个目录中,还有一些 1997 年的 WININET.DLL 的古老版本,肯定有人在那里复制了它,这就是我的 DLL 正在加载的内容。

当我删除旧的 WININET.DLL 时,加载了 System32 中的那个,现在它可以工作了。