Delphi InternetCrackUrl返回FALSE,GetLastError为120
我有一个导出函数的DLL 在该函数的某一点上,调用了from Wininet 除了在一台特定的计算机上,Delphi InternetCrackUrl返回FALSE,GetLastError为120,delphi,soap,wininet,Delphi,Soap,Wininet,我有一个导出函数的DLL 在该函数的某一点上,调用了from Wininet 除了在一台特定的计算机上,InternetCrackUrl返回FALSE和GetLastError返回120(未执行错误调用) 我看不出这台计算机有什么特别之处,它是一台装有Win10 PRO的台式机。它在其他任何地方都可以工作,在具有不同版本Windows的不同计算机上,甚至在具有Win10的其他计算机上 我还做了一个独立的测试应用程序,它只调用InternetCrackUrl,而且也可以工作,这让我相信它一定是关于
InternetCrackUrl
返回FALSE
和GetLastError
返回120
(未执行错误调用)
我看不出这台计算机有什么特别之处,它是一台装有Win10 PRO的台式机。它在其他任何地方都可以工作,在具有不同版本Windows的不同计算机上,甚至在具有Win10的其他计算机上
我还做了一个独立的测试应用程序,它只调用InternetCrackUrl
,而且也可以工作,这让我相信它一定是关于DLL的
还有什么可以检查的吗?我使用Process Explorer检查加载了哪个
WinInet.dll
我发现我的DLL与使用它的应用程序位于同一目录中。
在同一个目录中,也有一些1997年的WININET.DLL
的古老版本,一定有人复制了它,这就是我的DLL加载的内容
当我删除旧的
WININET.DLL
时,System32中的那一个已经加载,现在可以工作了。我使用Process Explorer检查加载了哪个WININET.DLL
我发现我的DLL与使用它的应用程序位于同一目录中。
在同一个目录中,也有一些1997年的WININET.DLL
的古老版本,一定有人复制了它,这就是我的DLL加载的内容
当我删除旧的
WININET.DLL
时,System32中的那一个已经加载,现在它可以工作了。在DLL中调用InternetCrackUrl()
时出现此错误是没有意义的,但在同一台机器上的应用程序中调用时根本不会失败。它们应该在同一WinInet DLL中调用同一函数。因此,这让我认为失败在操作系统内部更深层次。可能WinInet内部使用的依赖项失败了,错误会冒泡到InternetCraskul()
。可能您的DLL或加载它的应用程序有一个并排清单,该清单加载的WinInet版本与独立应用程序加载的版本不同?当在DLL中调用时,InternetCrackUrl()
会因此错误而失败,但在同一台计算机上的应用程序中调用时根本不会失败。它们应该在同一WinInet DLL中调用同一函数。因此,这让我认为失败在操作系统内部更深层次。可能WinInet内部使用的依赖项失败了,错误会冒泡到InternetCraskul()
。可能您的DLL或加载它的应用程序有一个并排清单,该清单加载的WinInet版本与独立应用程序加载的版本不同?或者类似的。