我做了一个程序,有一项功能是在ftp上查找指定文件,我使用的是api函数进行操作。函数调用等肯定没问题,在很多机子上都正常安装,正常运行。但昨天在一个xp系统上安装时却出现了wininet.dll无法覆盖的问题?即使是断开所有网络连接,进入安全模式也无法覆盖!我把winined.dll拷贝到应用程序安装目录下运行程序时,发现调用FtpFindFirstFile函数时返回12003号错误。而在其他机子上从未出现此问题,一直运行良好???代码如下:
'取得目录下第一个文件
lFind = FtpFindFirstFile(mlConnection, sFilter, pData, 0, 0)
lLastError = Err.LastDllError
'Debug.Print lLastError
'如果没有文件,则返回空记录集
If lFind = 0 Then
'MsgBox lLastError
If lLastError = ERROR_NO_MORE_FILES Then
'空目录
Set GetDirectoryList = oRS
Exit Function
Else
On Error GoTo 0
Err.Raise lLastError, "cFTP::GetDirectoryList", "Error looking at directory " & Directory & "\" & FilterString
End If
Exit Function
End If
就是在第2行,Err.LastDllError返回的是12003,不知为何?
internet连接调用如下:
mlConnection = InternetConnect(mlINetHandle, msHostAddress, INTERNET_INVALID_PORT_NUMBER, _
msUser, msPassword, INTERNET_SERVICE_FTP, 0, 0)
'取得目录下第一个文件
lFind = FtpFindFirstFile(mlConnection, sFilter, pData, 0, 0)
lLastError = Err.LastDllError
'Debug.Print lLastError
'如果没有文件,则返回空记录集
If lFind = 0 Then
'MsgBox lLastError
If lLastError = ERROR_NO_MORE_FILES Then
'空目录
Set GetDirectoryList = oRS
Exit Function
Else
On Error GoTo 0
Err.Raise lLastError, "cFTP::GetDirectoryList", "Error looking at directory " & Directory & "\" & FilterString
End If
Exit Function
End If
就是在第2行,Err.LastDllError返回的是12003,不知为何?
internet连接调用如下:
mlConnection = InternetConnect(mlINetHandle, msHostAddress, INTERNET_INVALID_PORT_NUMBER, _
msUser, msPassword, INTERNET_SERVICE_FTP, 0, 0)
首先,需要说明的是我这里没有装xp,不知道winined.dll在xp下覆盖后,系统能否正常工作。如果其它的机器上替换winined.dll后,确认系统没有问题的话,再替换吧。//连如何替换wininet.dll都没人知道么
在其他操作系统下替换,如果只有一个xp系统的话,可在dos下替换(可用win98的启动盘),当然改完注册表后,直接替换也可//如何查找一个dll文件有哪些程序在调用
打开HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Currentversion\SharedDlls子键,在右边的窗口中,每个值项的数据都说明了该值项的.dll文件有几个程序共享,如果数据为0,则可知道该文件没有程序共享,可以删掉了。
ntfs系统如何替换?
有一段代码,你参考一下
就算是处理吧-_-!
http://vbnet.mvps.org/code/internet/ftplist.htm