Функция UrlToDownloadFile не загружается

Я использую функцию UrlToDownloadFile, но она не загружает файл. В компиляторе не отображается ошибка (используется VStudio 2012)

Вот код:

#include <Windows.h>
#include "urlmon.h"
#pragma lib "urlmon.lib"
using namespace std;

void dwFile();int _tmain(int argc, _TCHAR* argv[])
{
dwFile ();
return 0;
}

void dwFile ()
{
LPCSTR url = ("http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3337.pdf");
LPCSTR fPath = ("C:\\Users\\Andyy\\Desktop\\test\\n3337.pdf");

HRESULT URLDownloadToFile ((NULL, url, fPath, 0, NULL));
}

0

Решение

Ваш код не выполняет никакой обработки ошибок, а ваша обработка строк неверна. Используйте это вместо:

#include <Windows.h>
#include "urlmon.h"
#pragma lib "urlmon.lib"
using namespace std;

void dwFile();

int _tmain(int argc, _TCHAR* argv[])
{
dwFile ();
return 0;
}

void dwFile ()
{
LPCTSTR url = TEXT("http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3337.pdf");
LPCTSTR fPath = TEXT("C:\\Users\\Andyy\\Desktop\\test\\n3337.pdf");

HRESULT hr = URLDownloadToFile (NULL, url, fPath, 0, NULL);
if (FAILED(hr))
{
// do something ...
}

/* or more preffered:

LPCWSTR url = L"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3337.pdf";
LPCWSTR fPath = L"C:\\Users\\Andyy\\Desktop\\test\\n3337.pdf");

HRESULT hr = URLDownloadToFileW (NULL, url, fPath, 0, NULL);
if (FAILED(hr))
{
// do something ...
}
*/
}

Обратите внимание на следующий комментарий в документации:

URLDownloadToFile возвращает S_OK даже если файл не может быть создан и загрузка отменена. Если параметр szFileName содержит путь к файлу, убедитесь, что целевой каталог существует, прежде чем вызывать URLDownloadToFile. Для лучшего контроля за загрузкой и ее ходом рекомендуется интерфейс IBindStatusCallback.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]