老子横刀向天笑 2015-01-09 09:28 采纳率: 66.7%
浏览 1844
已采纳

delphi调用HttpQueryInfo函数编译报错,说参数类型不符合

procedure Get(url,heads: string;res: TStream);
var
  hInt,hUrl:HINTERNET;
  buffer:PChar;
  dwRead:cardinal;
  hBuf:PChar;
  flag:Boolean;
  len,index:Integer;
  var value: DWORD;
begin
 GetMem(buffer, 65536);
 GetMem(hBuf, 65536);
 hInt := InternetOpen('Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)',INTERNET_OPEN_TYPE_PRECONFIG,nil,nil,0);
 dwRead:=0;
 if Trim(heads)<>'' then
    hurl:=InternetOpenUrl(hInt,PChar(url),PAnsiChar(AnsiString(heads)),Length(AnsiString(heads)),INTERNET_FLAG_RELOAD,0)
 else
    hurl:=InternetOpenUrl(hInt,PChar(url),nil,0,INTERNET_FLAG_RELOAD,0);
 //获取响应头信息
 flag:=HttpQueryInfo(hurl,HTTP_QUERY_RAW_HEADERS_CRLF,hBuf,len,index);
 //showmessage(StrPas(hBuf));

 repeat
   InternetReadFile(hUrl,buffer,1000,dwRead);
   if dwRead<>0 then
     res.Write(buffer^, dwRead);
 until dwRead=0;
 InternetCloseHandle(hUrl);
 InternetCloseHandle(hInt);
 FreeMem(buffer);
end; 

报错是从len参数开始报错的,我看了函数,最后两个参数是var的,我试着传过地址也不行,我看网上有人跟我一样的就行就我的不行,有谁搞过,请多多指教!

  • 写回答

1条回答 默认 最新

  • pathletboy 2015-01-10 14:22
    关注

    局部变量定义
    len,index:integer;
    修改为
    len,index:Cardinal;

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 Android STD快速启动
  • ¥15 如何使用simulink建立一个永磁同步直线电机模型?
  • ¥30 天体光谱图的的绘制并得到星表
  • ¥15 PointNet++的onnx模型只能使用一次
  • ¥20 西南科技大学数字信号处理
  • ¥15 有两个非常“自以为是”烦人的问题急期待大家解决!
  • ¥30 STM32 INMP441无法读取数据
  • ¥15 R语言绘制密度图,一个密度曲线内fill不同颜色如何实现
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动