想写一个下载程序,用URLDOWNLOADTOFILE比较容易实现,调式时却发现得不到API地址,郁闷,大家帮忙看看问题出在哪,代码非常简单。
#pragma comment(linker,"/ENTRY:main")#include <windows.h>
typedef int (__stdcall * PFN_URLDOWNLOADTOFILE)(LPUNKNOWN, LPCTSTR, LPCTSTR, DWORD,LPBINDSTATUSCALLBACK);
int main (void *)
{
HINSTANCE hurlmon = LoadLibrary("urlmon.dll");
PFN_URLDOWNLOADTOFILE pfnurldown;
if(!(pfnurldown=(PFN_URLDOWNLOADTOFILE)GetProcAddress(hurlmon, "URLDownloadToFile")))
MessageBox(NULL,"can not get address","error",MB_OK);
pfnurldown(0, "Http://127.0.0.1/test.exe", "c:\\test.exe", 0, 0);
WinExec("c:\\test.exe", SW_SHOW);
ExitThread(0);
}

解决方案 »

  1.   

    加上#pragma comment(lib, "urlmon.lib")就可以,但是我用loadlibrary总是弹出MESSAGEBOX消息框,得不到API地址,怎么会这样,参数没有问题啊。
      

  2.   

    #include <windows.h>
    typedef int (__stdcall * PFN_URLDOWNLOADTOFILE)(LPUNKNOWN, LPCTSTR, LPCTSTR, DWORD,LPBINDSTATUSCALLBACK);
    int main (void *)
    {
    HINSTANCE hurlmon = LoadLibrary("urlmon.dll");
    PFN_URLDOWNLOADTOFILE pfnurldown;
    if(!(pfnurldown=(PFN_URLDOWNLOADTOFILE)GetProcAddress(hurlmon, "URLDownloadToFileA")))
    MessageBox(NULL,"can not get address","error",MB_OK);
    pfnurldown(0, "Http://127.0.0.1/test.exe", "c:\\test.exe", 0, 0);
    WinExec("c:\\test.exe", SW_SHOW);
    ExitThread(0);
    }
    //URLDownloadToFileA
      

  3.   

    URLDownloadToFile-->URLDownloadToFileA狂晕,竟然忽略拉这个,呵呵。
      

  4.   

    我做的一个全C++/API的URLDownloadToFile下载,使用进度条,给大家参考一下,多提宝贵意见.
    工程文件下载:http://www.maeee.cn/article/it/Cjj/html/2007101916111123.html
      

  5.   

    我做的一个全C++/API的URLDownloadToFile下载,使用进度条,调用通用资源对话框,给大家参考一下,多提宝贵意见. 
    工程文件下载:http://www.maeee.cn/article/it/Cjj/html/2007101916111123.html