Скачивание файла - Вопросы и ответы, обсуждения - Ваши вопросы по C/C++ только в данном разделе
08.05.2013, 22:11
#1
Пехотинец
Регистрация: 10.10.2011
Сообщений: 65
Популярность: 772
Сказал(а) спасибо: 58
Поблагодарили 57 раз(а) в 32 сообщениях
Скачивание файла
Мне надо скачать текстовый файл с интернета потом его обработать и тд.
со 2 я сам разберусь но встал вопрос с 1
это скачивание файла
сколько обсмотрел интернет ничего полезного не нашёл =(
пробовал :
PHP код:
URLDownloadToFile ( 0 , "http://123.ru/123.txt" , "c:\\myfile.txt" , 0 , 0 );
но файл не скачивается и более программа закрывается только через диспетчер задач ...
08.05.2013, 23:17
#2
Пехотинец
Регистрация: 07.07.2012
Сообщений: 60
Популярность: 171
Сказал(а) спасибо: 3
Поблагодарили 11 раз(а) в 10 сообщениях
Re: Скачивание файла
http://zhyk.ru/forum/showthread.php?t=681133
По указанной ссылке
Annedroid любезно выложила заголовочник с классом, в котором есть весь необходимый функционал.
Пользователь сказал cпасибо:
09.05.2013, 18:41
#3
Пехотинец
Регистрация: 10.10.2011
Сообщений: 65
Популярность: 772
Сказал(а) спасибо: 58
Поблагодарили 57 раз(а) в 32 сообщениях
Re: Скачивание файла
спасибо но всё же я может что то не то делаю но файл не скачивает всё равно и результат тот же... =(
09.05.2013, 22:25
#4
Пехотинец
Регистрация: 07.07.2012
Сообщений: 60
Популярность: 171
Сказал(а) спасибо: 3
Поблагодарили 11 раз(а) в 10 сообщениях
Re: Скачивание файла
09.05.2013, 23:26
#5
Пехотинец
Регистрация: 10.10.2011
Сообщений: 65
Популярность: 772
Сказал(а) спасибо: 58
Поблагодарили 57 раз(а) в 32 сообщениях
Re: Скачивание файла
10.05.2013, 00:01
#6
Пехотинец
Регистрация: 07.07.2012
Сообщений: 60
Популярность: 171
Сказал(а) спасибо: 3
Поблагодарили 11 раз(а) в 10 сообщениях
Re: Скачивание файла
10.05.2013, 12:56
#7
Пехотинец
Регистрация: 10.10.2011
Сообщений: 65
Популярность: 772
Сказал(а) спасибо: 58
Поблагодарили 57 раз(а) в 32 сообщениях
Re: Скачивание файла
10.05.2013, 14:11
#8
Пехотинец
Регистрация: 07.07.2012
Сообщений: 60
Популярность: 171
Сказал(а) спасибо: 3
Поблагодарили 11 раз(а) в 10 сообщениях
Re: Скачивание файла
Я имел ввиду ссылку на файл, который пытаешься скачать.
Ночью с напильником посидел и нужный мне текстовый файл с хостинга прога стала вытягивать на ура, поэтому или у тебя где-то в коде косяк, или файл не доступен. Сначала давай проверим второе (дай ссылку на файл, который скачивать хочешь), если не пойдет, тогда уже будем исходный код смотреть.
10.05.2013, 14:25
#9
Пехотинец
Регистрация: 10.10.2011
Сообщений: 65
Популярность: 772
Сказал(а) спасибо: 58
Поблагодарили 57 раз(а) в 32 сообщениях
Re: Скачивание файла
10.05.2013, 14:58
#10
Пехотинец
Регистрация: 07.07.2012
Сообщений: 60
Популярность: 171
Сказал(а) спасибо: 3
Поблагодарили 11 раз(а) в 10 сообщениях
Re: Скачивание файла
Текст по ссылке - "ываукгшрсацтшуаршцс"
Текст скачанного файла - "ываукгшрсацтшуаршцс"
upd:
И в правду виснет, твоя проблема в функции InternetOpenUrl, которая проявляется, только только при использовании функции из dll'ки.
Цитата:
Проблема решилась при запуске функции в отдельном потоке.
Источник: [
Ссылки могут видеть только зарегистрированные пользователи. ]
Последний раз редактировалось twice; 10.05.2013 в 16:50 .
Пользователь сказал cпасибо:
11.05.2013, 12:16
#11
Пехотинец
Регистрация: 10.10.2011
Сообщений: 65
Популярность: 772
Сказал(а) спасибо: 58
Поблагодарили 57 раз(а) в 32 сообщениях
Re: Скачивание файла
спасибо,но при вызове функции в потоке такая же проблема =(
Вот то что я пишу для попытки скачивания файла
CreateThread(0,0,(LPTHREAD_START_ROUTINE)Get("http ://justhack.3dn.ru/123.txt", "c:\\myfile.txt"),0,0,0);
эффект такой же как и без потока... =(
поправьте пожалуйста если я что то не так написал.
11.05.2013, 14:56
#12
Пехотинец
Регистрация: 07.07.2012
Сообщений: 60
Популярность: 171
Сказал(а) спасибо: 3
Поблагодарили 11 раз(а) в 10 сообщениях
Re: Скачивание файла
Цитата:
CreateThread(0,0,(LPTHREAD_START_ROUTINE)Get("http ://justhack.3dn.ru/123.txt", "c:\\myfile.txt"),0,0,0);
Для передачи параметра используется 4 параметр CreateThread.
В общем у меня заработало, необходимые изменения в твоем изначальном коде:
Код:
case DLL_PROCESS_ATTACH:
{
DWORD dwThreadID = 0;
HANDLE hThread = CreateThread(NULL, 0 , (LPTHREAD_START_ROUTINE)(Get), NULL, 0, &dwThreadID);
}
Остальное сводится к фиксам ошибок в функции
Код:
static HANDLE WINAPI Get()
Рабочий, но не красивый вариант будет ниже. Мой доработанный класс AInternet сейчас выложу в топике, где Анна выкладывала свой (мой является просто его переработкой/усовершенствованием).
Код:
static HANDLE __stdcall Get()
{
wchar_t* lpszUrl = L"http://justhack.3dn.ru/123.txt";
wchar_t* lpszFile = L"d:\\myfile.txt";
DWORD_PTR pdwReadSize = NULL;
INTERNET_BUFFERS ibBuffer;
HINTERNET hInternet = InternetOpen( INTERNET_LOGIN, INTERNET_OPEN_TYPE_PRECONFIG, 0, 0, 0 );
HINTERNET hFile = InternetOpenUrl(hInternet, lpszUrl,NULL,NULL,INTERNET_FLAG_RELOAD,NULL);
DWORD dwSize = 0;
InternetQueryDataAvailable(hFile,&dwSize,NULL,NULL);
//Setting up Internet Buffers structure
memset(&ibBuffer,0,sizeof(INTERNET_BUFFERS));
ibBuffer.dwBufferLength = dwSize;
ibBuffer.lpvBuffer = new BYTE[ibBuffer.dwBufferLength];
ibBuffer.dwStructSize = sizeof(INTERNET_BUFFERS);
if (!InternetReadFileEx(hFile,&ibBuffer,ibBuffer.dwBufferLength,pdwReadSize))
{
delete [] ibBuffer.lpvBuffer;
}
InternetCloseHandle(hFile);
HANDLE hOutputFile = CreateFile(lpszFile,GENERIC_WRITE,NULL,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
//Async write to the end of file
OVERLAPPED ovpSmth;
ovpSmth.Offset = 0xFFFFFFFF;
ovpSmth.OffsetHigh = 0xFFFFFFFF;
if (!WriteFileEx(hOutputFile,ibBuffer.lpvBuffer,ibBuffer.dwBufferLength,&ovpSmth,NULL))
{
delete [] ibBuffer.lpvBuffer;
}
CloseHandle(hOutputFile);
delete [] ibBuffer.lpvBuffer;
}
Добавлено через 1 час 0 минут
Кстати, не пытайся писать в корень "С", т.к. это требует запуска приложения от имени админа.
Последний раз редактировалось twice; 11.05.2013 в 15:56 .
Причина: Добавлено сообщение
Пользователь сказал cпасибо:
11.05.2013, 20:45
#13
Пехотинец
Регистрация: 10.10.2011
Сообщений: 65
Популярность: 772
Сказал(а) спасибо: 58
Поблагодарили 57 раз(а) в 32 сообщениях
Re: Скачивание файла
спасибо всё получилось!
21.05.2013, 21:48
#14
Разведчик
Регистрация: 23.01.2012
Сообщений: 0
Популярность: -104
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Re: Скачивание файла
пиши трай чтоб не вылитала
23.05.2013, 11:31
#15
Пехотинец
Регистрация: 07.07.2012
Сообщений: 60
Популярность: 171
Сказал(а) спасибо: 3
Поблагодарили 11 раз(а) в 10 сообщениях
Re: Скачивание файла
Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 08:04 .