InternetCrackUrl returns FALSE,GetLastError 为 120
InternetCrackUrl returns FALSE, GetLastError is 120
我有一个导出函数的 DLL。
在该函数的某个时刻,调用了来自 Wininet 的 InternetCrackUrl()。
一切正常,除了一台特定的计算机,其中 InternetCrackUrl
returns FALSE
和 GetLastError
returns 120
(ERROR_CALL_NOT_IMPLEMENTED).
我看不出这台电脑有什么特别之处,就是一台Win10 PRO的台式机。它在其他任何地方都可以工作,在装有不同版本 Windows 的不同计算机上,甚至在装有 Win10 的其他计算机上。
我还制作了一个仅调用 InternetCrackUrl
的测试独立应用程序,它也能正常工作,这让我相信它一定是关于 DLL 的。
关于我还可以检查什么的任何想法?
我使用 Process Explorer 检查加载了哪个 WinInet.dll
。
我发现我的 DLL 与正在使用它的应用程序位于同一目录中。
在同一个目录中,还有一些 1997 年的 WININET.DLL
的古老版本,肯定有人在那里复制了它,这就是我的 DLL 正在加载的内容。
当我删除旧的 WININET.DLL
时,加载了 System32 中的那个,现在它可以工作了。
我有一个导出函数的 DLL。
在该函数的某个时刻,调用了来自 Wininet 的 InternetCrackUrl()。
一切正常,除了一台特定的计算机,其中 InternetCrackUrl
returns FALSE
和 GetLastError
returns 120
(ERROR_CALL_NOT_IMPLEMENTED).
我看不出这台电脑有什么特别之处,就是一台Win10 PRO的台式机。它在其他任何地方都可以工作,在装有不同版本 Windows 的不同计算机上,甚至在装有 Win10 的其他计算机上。
我还制作了一个仅调用 InternetCrackUrl
的测试独立应用程序,它也能正常工作,这让我相信它一定是关于 DLL 的。
关于我还可以检查什么的任何想法?
我使用 Process Explorer 检查加载了哪个 WinInet.dll
。
我发现我的 DLL 与正在使用它的应用程序位于同一目录中。
在同一个目录中,还有一些 1997 年的 WININET.DLL
的古老版本,肯定有人在那里复制了它,这就是我的 DLL 正在加载的内容。
当我删除旧的 WININET.DLL
时,加载了 System32 中的那个,现在它可以工作了。