Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.11.2010, 11:37   #1
Balexander
Пользователь
 
Регистрация: 15.11.2010
Сообщений: 14
По умолчанию Получение файла из Интернета

Добрый день.
Мне нужно скачать файл из интернета по прямой ссылке.
Пытаюсь это сделать следующим образом:

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

Function DownLoadFile(FromPathName, ToPathName) As Boolean
DownLoadFile = URLDownloadToFile(0, FromPathName, ToPathName, 0, 0) = 0
End Function
Sub Main()
Path = "D:\Temp\"
link = "http://dt.moskva.fm/files/4023/mp4/2010/10/22/1409.mp4"
FileToLoad = Path & "1409.mp4"
If DownLoadFile(link, FileToLoad) Then
MsgBox "Загружен файл: " & link
Else
MsgBox "Файл загрузить не удалось " , vbCritical
End If
End Sub

Строка Declare Function URLDownloadToFile Lib... постоянно выделена красным и выдается ошибка:
Compile error:
The code in this project must be updated for use 64-bit systems. Please review and update Declare statements and then mark them with the PtrSafe attribute.

Понимаю, что эта проблема из-за 64-х битной системы, но вот как решить ее не пойму.
Balexander вне форума Ответить с цитированием
Старый 19.11.2010, 15:53   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

Не поленился - вбил текст сообщения об ошибке в строку поиска Яндекса.
Через пару секунд решение было найдено: http://msdn.microsoft.com/en-us/library/ee691831.aspx

Замените первую строку кода на это: (если у вас Office 2010)
Код:
Declare PtrSafe 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
или на это (если у вас 64-битная Windows)
Код:
    Declare PtrSafe Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" _
            (ByVal pCaller As LongLong, ByVal szURL As String, ByVal szFileName As String, _
             ByVal dwReserved As LongLong, ByVal lpfnCB As LongLong) As LongLong


PS: В общем случае первую строку кода надо заменить на следующие строки
(чтобы на всех компах работало):

Код:
#If Win64 Then
    Declare PtrSafe Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" _
            (ByVal pCaller As LongLong, ByVal szURL As String, ByVal szFileName As String, _
             ByVal dwReserved As LongLong, ByVal lpfnCB As LongLong) As LongLong
#Else
    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
#End If

#If VBA7 Then
    Declare PtrSafe 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
#Else
    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
#End If

Последний раз редактировалось EducatedFool; 19.11.2010 в 15:56.
EducatedFool вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скачивание файла из интернета по ссылке smith45 Microsoft Office Excel 24 24.01.2012 13:15
получение данных из Интернета nactuxa Помощь студентам 1 18.07.2010 21:37
Получение файлов с интернета (C#) alxd Общие вопросы .NET 4 16.02.2010 03:59
Закачка файла из Интернета _SERGEYX_ Работа с сетью в Delphi 3 18.01.2010 14:21
проблема с функцией скачивания файла из интернета ZeitGeist7 Работа с сетью в Delphi 2 27.02.2009 19:43