读书人

C++Builder里面用InternetGetCookie如

发布时间: 2012-03-06 20:47:55 作者: rapoo

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;    }} 

读书人网 >C++ Builder

热点推荐