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