用URLDownloadToFile下载文件的问题

pdy265 2010-12-15 11:58:09
如题,自己使用URLDownloadToFile函数可以编译并下载成功,到别人机器上就不行,提示错误为-2147467260
请教原因
代码如下:
r = URLDownloadToFile(0, "http://dl_dir.qq.com/qqfile/qq/QQ2010/QQ2010SP3.1.exe", App.Path & "\temp\zfdm.exe", 0, 0)
If r = 0 Then
MsgBox "下载完毕"
Else
MsgBox r
End If

然后得到r的值就是-2147467260
...全文
518 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
IDNCC 2010-12-16
  • 打赏
  • 举报
回复
DWORD WINAPI NVNET_LogonServer(LPCSTR lpszServerIP,WORD wServerPort,LPCSTR lpszUserName,
LPCSTR lpszPsw,TRANS_SERVER_INFO *pTranServerInfo,LPVOID *lpHandle);

请问这个如何转为VB的AIP

Private Declare Function TMNVNET_LogonServer Lib "NVSDK" Alias "TMNVNET_LogonServerA" (ByVal lpszServerIP As String, ByVal wServerPort As Long, ByVal lpszUserName As String, ByVal lpszPsw As String, ByVal pTranServerInfo As Long, ByVal lpHandle As Long) As Long

我这样转好像不对...
cbm6666 2010-12-16
  • 打赏
  • 举报
回复
App.Path & "\temp\zfdm.exe" 这是你硬盘上面的路径,别人没这路径当然出错

写代码也得有 API

Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long '-下载文件

Private Sub Command1_Click()
DownloadFile "http://cbm666.net/Music/whisper.mid", "C:\whisper.mid"
End Sub

Public Function DownloadFile(URL As String, LocalFilename As String) As Boolean
Dim lngRetVal As Long
lngRetVal = URLDownloadToFile(0, URL, LocalFilename, 0, 0)
If lngRetVal = 0 Then DownloadFile = True
End Function
无·法 2010-12-16
  • 打赏
  • 举报
回复
api包含的lib不存在报 53, 文件未找到: xxx
参数url地址不存在报 -2146697208, 自动化错误
参数本地路径不存在报 -2147467260, 应用程序定义或对象定义错误

urlmon.dll建议不要用,有些杀软会认为病毒。
无·法 2010-12-16
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 pdy265 的回复:]

引用 1 楼 cbm666 的回复:
App.Path & "\temp\zfdm.exe" 这是你硬盘上面的路径,别人没这路径当然出错

写代码也得有 API

Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Lon……
[/Quote]可是你的参数是App.Path & "\temp\zfdm.exe",如果temp目录不存在就会报-2147467260错误。解决办法就是先用程序建立temp目录,或者打包直接包含这个文件夹。
pdy265 2010-12-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 cbm666 的回复:]
App.Path & "\temp\zfdm.exe" 这是你硬盘上面的路径,别人没这路径当然出错

写代码也得有 API

Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String,……
[/Quote]
Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
API的声明我写了的啊
路径问题app.path可以代表当前目录的啊?我看下面有人说要安装才能行,API不是系统自带的资源吗,需要安装吗?
dbcontrols 2010-12-16
  • 打赏
  • 举报
回复
urlmon.dll  urlmon - urlmon.dll - DLL
文件信息   DLL
文件: urlmon 或者 urlmon.dll   DLL
名称: OLE32 Extensions for Win32   
描述:   urlmon.dll是微软Microsoft对象链接和嵌入相关模块。

常见错误: File Not Found, Missing File, Exception Errors   
解决方法:   复制完文件后,如下操作:   
1. 退出正在运行的所有程序。   
2. 单击开始,然后单击运行。   
3. 键入 regsvr32 urlmon.dll,然后单击确定。   
4. 当收到“DllRegisterServer in urlmon.dll succeeded”(urlmon.dll 中的 DllRegisterServer 成功)消息时,单击确定。
dbcontrols 2010-12-16
  • 打赏
  • 举报
回复
可以编译并下载成功,到别人机器上就不行
说明:1、需要制作安装软件,到别人机器上安装
2、对方机器上必须有urlmon这个库

1,486

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧