Delphi-Version: 5
inkompatible Typen Widechar und Char
Hallo,
wie muss ich das denn /'Conventieren/', dass die fehlermeldung den Geist aufgibt? ;)
Delphi-Quellcode:
function LoadURL(URL: String): String;
var IOpen, IURL: HINTERNET; Read: Cardinal; Msg: string; begin Result := ''; try IOpen := InternetOpen('Okay!',INTERNET_OPEN_TYPE_PRECONFIG, '', '',INTERNET_FLAG_NEED_FILE); if IOpen <> nil then try [U]IURL := InternetOpenUrl(IOpen, PWideChar(URL), nil, 0,INTERNET_FLAG_DONT_CACHE, 0);[/U] if IURL <> nil then try SetLength(Msg, 4096); repeat if InternetReadFile(IURL, @Msg[1], 4096, Read) then Result := Result + Copy(Msg, 1, Read) else Break; until Read = 0; finally InternetCloseHandle(IURL); end; finally InternetCloseHandle(IOpen); end; except end; end; // EDIT: Hab PwideChar durch PAnsiChar ersetzt... aber hab nur geraten :D Gibts da trotzdem Probleme, bzw. kann es zu Problemen kommen? |
AW: inkompatible Typen Widechar und Char
Unter Delphi < 2009 richtig geraten ...
|
AW: inkompatible Typen Widechar und Char
Wieso nicht einfach PChar? Damit wäre das bis Delphi 2007 automatisch PAnsiChar, danach dann PWideChar.
|
AW: inkompatible Typen Widechar und Char
Zitat:
und diese ist mit PChar deklariert, also muß man auch PChar verwenden. Außerdem hast du auch den dynamischen String verwendet, welcher ebenfalls nach einem PChar schreit. 1. Wenn möglich, dann nachsehn, wie es im Delphi deklariert wurde. (wenn man über die VCL-Quellcodes verfügt) 2. Nachsen wie es im MSDN deklariert ist. InternetOpenUrl Die WinAPI kenn also kein InternetOpenUrl. Zitat:
Anhand der "richtigen" Deklaration die passenden Parameter verwenden. InternetOpenUrl + PChar + String InternetOpenUrlA + PAnsiChar + AnsiString InternetOpenUrlW + PWideChar + WideString (seit 2009 auch mit UnicodeString möglich) Fällt dir was auf? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:17 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz