我此前一直用D7,后来换系统只能装D2010.但是问题来了.之前用得好好的代码 D2010下获取的源码是乱码.下面贴上.很普通很常见的wininet获取源码的代码.求大神解惑.
uses WinInet;
function GetWebPage(const Url: string):string;
var
Session,
HttpFile:HINTERNET;
szSizeBuffer:Pointer;
dwLengthSizeBuffer:DWord;
dwReserved:DWord;
dwFileSize:DWord;
dwBytesRead:DWord;
Contents:PChar;
begin
Session:=InternetOpen('',0,niL,niL,0);
HttpFile:=InternetOpenUrl(Session,PChar(Url),niL,0,0,0);
dwLengthSizeBuffer:=1024;
HttpQueryInfo(HttpFile,5,szSizeBuffer,dwLengthSizeBuffer,dwReserved);
GetMem(Contents,dwFileSize);
InternetReadFile(HttpFile,Contents,dwFileSize,dwBytesRead);
InternetCloseHandle(HttpFile);
InternetCloseHandle(Session);
Result:=StrPas(Contents);
FreeMem(Contents);
end;乱码样子
2010源代码Delphi乱码
uses WinInet;
function GetWebPage(const Url: string):string;
var
Session,
HttpFile:HINTERNET;
szSizeBuffer:Pointer;
dwLengthSizeBuffer:DWord;
dwReserved:DWord;
dwFileSize:DWord;
dwBytesRead:DWord;
Contents:PChar;
begin
Session:=InternetOpen('',0,niL,niL,0);
HttpFile:=InternetOpenUrl(Session,PChar(Url),niL,0,0,0);
dwLengthSizeBuffer:=1024;
HttpQueryInfo(HttpFile,5,szSizeBuffer,dwLengthSizeBuffer,dwReserved);
GetMem(Contents,dwFileSize);
InternetReadFile(HttpFile,Contents,dwFileSize,dwBytesRead);
InternetCloseHandle(HttpFile);
InternetCloseHandle(Session);
Result:=StrPas(Contents);
FreeMem(Contents);
end;乱码样子
2010源代码Delphi乱码
最终正常获取代码。
function GetWebPage(const Url: string):string;
var
Session,
HttpFile:HINTERNET;
szSizeBuffer:DWord;
dwLengthSizeBuffer:DWord;
dwReserved:DWord;
dwBytesRead:DWord;
Contents:PAnsiChar;
begin
Session:=InternetOpen('',0,'','',0);
HttpFile:=InternetOpenUrl(Session,PChar(Url),'',0,0,0);
dwLengthSizeBuffer:=1024;
HttpQueryInfo(HttpFile,5,@szSizeBuffer,dwLengthSizeBuffer,dwReserved);
GetMem(Contents,szSizeBuffer);
InternetReadFile(HttpFile,Contents,szSizeBuffer,dwBytesRead);
InternetCloseHandle(HttpFile);
InternetCloseHandle(Session);
Result:=Contents;
FreeMem(Contents);
end;