![]() |
String aus Pointerangabe auslesen
Hallo allerseits,
ich habe folgenden Funktionsaufruf:
Delphi-Quellcode:
Jetzt möchte ich die Information, welche sich hinter pInformation verbirgt und InfoLength Zeichen lang ist, auslesen.
procedure StatusCallback(hInet: HINTERNET; Context, Status: DWORD;
pInformation: Pointer; InfoLength: DWORD); stdcall; Da ich mit Pointern noch nicht gearbeitet habe, kenne ich hier mich leider nicht aus. Kann mir vielleicht jemand auf die Sprünge helfen. mfg Herbert |
Re: String aus Pointerangabe auslesen
Hi. Einem String kann man es so zuweisen:
Delphi-Quellcode:
Auf Fehler nicht geprüft.
var
i: Integer; strInfo: string; begin SetLength(strInfo, InfoLength); for i:=1 fo High(strInfo) do strInfo[i] := PChar(pInfomation)[i-1]; end; |
Re: String aus Pointerangabe auslesen
Ich würde es so machen:
Delphi-Quellcode:
var str: String;
begin setlength(str, InfoLength); str:=PString(pInformation)^; end; |
Re: String aus Pointerangabe auslesen
Hallo Herbert,
da kann sich sehr Unterschiedliches hinter dem Zeiger verbergen:
Delphi-Quellcode:
Getippt und nicht getestet.
uses
WinSock, WinInet; procedure StatusCallback(hInet: HINTERNET; Context, Status: DWORD; pInformation: Pointer; InfoLength: DWORD); var sa: TSockAddr; iar: TInternetAsyncResult; s: String; dw: DWORD; begin case Status of INTERNET_STATUS_CONNECTING_TO_SERVER, INTERNET_STATUS_CONNECTED_TO_SERVER: Move(pInformation^, sa, SizeOf(sa)); INTERNET_STATUS_REQUEST_COMPLETE, INTERNET_STATUS_HANDLE_CREATED: Move(pInformation^, iar, SizeOf(iar)); INTERNET_STATUS_REDIRECT, // URL INTERNET_STATUS_RESOLVING_NAME, // HOSTNAME INTERNET_STATUS_NAME_RESOLVED: // HOSTNAME s := PChar(pInformation); INTERNET_STATUS_STATE_CHANGE, INTERNET_STATUS_RESPONSE_RECEIVED, INTERNET_STATUS_REQUEST_SENT: dw := PDWORD(pInformation)^; end; end; Grüße vom marabu |
Re: String aus Pointerangabe auslesen
Vielen herzlichen Dank an alle.
Werde das gleich mal versuchen ... mfg Herbert |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:51 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz