URLDownloadToFile问题

时间:2017-02-09 23:15:49

标签: c++ visual-studio debugging winapi urlmon

好的,所以我一直在尝试做一些简单的事情,比如在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 ++方面并不是很有经验。我读了几本书,但我现在处于较年轻的一面,而且我现在正在为此而努力。

至于调试,urlfileURlDownloadToFunction中调用时会抛出错误,直到我.c_str()并转换它们为止。我在函数调用中设置了一个断点,注意到变量hr的值为0xcccccccc,直到下一个断点,printf语句,hr的值为{{{ 1}}而没有别的。字符串似乎没有问题,但它没有告诉我任何其他内容。老实说我真的很难过。任何和所有的帮助都非常感激。

编辑

我觉得自己像个白痴,但我试图写入我的C:\驱动器的根目录,即使我忘了启用UAC。当我启用它时,它下载并运行Putty就好了,虽然我正在考虑从URLDownloadToFile()更改为使用WinInet。谢谢你的帮助!

0 个答案:

没有答案