首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

C++Builder里面用InternetGetCookie如何用呀,请教

2012-03-06 
C++Builder里面用InternetGetCookie怎么用呀,请问。 - C++ Builder / Windows SDK/API写了个函数来获取指定

C++Builder里面用InternetGetCookie怎么用呀,请问。 - C++ Builder / Windows SDK/API
写了个函数来获取指定URL的COOKIES,可是就是编译不过
不知道为什么
请指点一下。

C/C++ code
bool   CanGetIECookie(AnsiString   URL,AnsiString *Cookie){    char lpvBuffer[1000];    char cookies;    char lpvBuffer2[1000];    unsigned long lpdwBufferLength;    char lpvBuffer3[1000];    bool result;    lpdwBufferLength   =sizeof(lpvBuffer);    result=InternetGetCookie(URL.c_str(),   NULL,   &cookies,   &lpdwBufferLength);    if (result)        *Cookie   =   String(cookies);    return result;}


那几个lpvBuffer是怕溢出弄的,如果有什么其他好办法,可以去掉它。
谢谢了。

[解决办法]
C/C++ code
#include <wininet.h>#pragma link "wininet.lib"void __fastcall TForm1::Button1Click(TObject *Sender){    char szURL[256] = "http://www.baidu.com";    LPSTR lpszData = NULL;    DWORD dwSize=0;    // 先获取Cookie的大小以确定缓冲    InternetGetCookie(szURL, NULL, lpszData, &dwSize);    lpszData = new char[dwSize];    try    {        BOOL b = InternetGetCookie(szURL, NULL, lpszData, &dwSize);        DWORD dwLastError(GetLastError());        if (!b)        {            // 如果失败显示错误代码详细信息            ShowMessage(SysErrorMessage(dwLastError));        }        else        {            Memo1->Lines->Add(lpszData);        }    }    __finally    {        delete[] lpszData;    }} 

热点排行