Итак, я пытался сделать несколько простых вещей, таких как загрузка и передача файлов в Visual C ++, и я использовал URLDownloadToFile()
функция. Код скомпилирован, и он не выдает никаких ошибок, однако он ничего не загрузит. Очевидно, я не просто бегал сюда в ту минуту, когда мой код не работал, поэтому я сделал некоторые отладки и тому подобное, о которых я упомяну через минуту. Вот код
#pragma comment(lib, "urlmon.lib")
#include <Windows.h>
#include <urlmon.h>
#include <stdio.h>
#include <tchar.h>
#include <string>
using namespace std;
void dwfile();
int main() {
dwfile();
return 0;
}
int dwfile() {
string url("http://0.0.0.0/putty.exe"); // I changed the IP for privacy
string file("C:\\Putty");
const char *strUrl = url.c_str();
const char *strFile = file.c_str(); // I had been testing with these, not currently using them
HRESULT hr = URLDownloadToFile(NULL, url.c_str(), file.c_str(), 0, NULL);
if (FAILED(hr)) {
printf("failed\n");
OutputDebugString("\n");
OutputDebugString("FAILED\n");
OutputDebugString("\n");
GetLastError();
system("pause");
}
}
Имейте в виду, что я не профессионал, и что я не невероятно опыт в C ++. Я прочитал несколько книг, но я нахожусь на более молодой стороне, и в настоящее время я делаю это для развлечения.
Что касается отладки, url
а также file
будет выдавать ошибки при вызове в URlDownloadToFunction
пока я не сделал .c_str()
и преобразовал их. Я установил точку останова при вызове функции и заметил, что переменная hr имеет значение 0xcccccccc до следующей точки останова на printf
заявление, когда hr
тогда имел значение E_ABORT Operation Aborted
и ничего больше. Похоже, со строками проблем не было, но больше ничего мне не говорило. Я, честно говоря, просто в тупик. Любая помощь очень ценится.
РЕДАКТИРОВАТЬ
Я чувствую себя идиотом, но я пытался записать в корень моего диска C: \, хотя я забыл включить UAC. Когда я включил его, он загрузил и запустил Putty очень хорошо, хотя я подумываю перейти от URLDownloadToFile () к использованию WinInet. Спасибо за помощь!
Задача ещё не решена.
Других решений пока нет …