Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Frage zu "SysErrorMessage()" und "GetLastError()" (https://www.delphipraxis.net/110904-frage-zu-syserrormessage-und-getlasterror.html)

kcx 26. Mär 2008 14:54


Frage zu "SysErrorMessage()" und "GetLastErro
 
Hallo,

Ich frage mich, wieso folgender Code immer eine leere Fehlerbeschreibung zurückliefert, anstatt etwas wie z.B "Login failed" oder "Incorrect username or password" o.Ä.

Delphi-Quellcode:
uses
  WinInet;

procedure TForm1.Button1Click(Sender: TObject);
var
  hInternetOpen, hInternetConnect: HINTERNET;
begin
  hInternetOpen := InternetOpen('FTP', INTERNET_OPEN_TYPE_DIRECT, '', '', 0);
  if Assigned(hInternetOpen) then
    try
      hInternetConnect := InternetConnect(hInternetOpen, 'ftp.microsoft.com', INTERNET_DEFAULT_FTP_PORT, 'irgendwas', 'keineahnung', INTERNET_SERVICE_FTP, 0, 0);
      if Assigned(hInternetConnect) then
        try
          ShowMessage('OK');
        finally
          InternetCloseHandle(hInternetConnect);
        end
      else
        ShowMessage(SysErrorMessage(GetLastError));
    finally
      InternetCloseHandle(hInternetOpen);
    end
  else
    ShowMessage(SysErrorMessage(GetLastError));
end;
Auch wenn ich anstatt ftp.microsoft.com einen Server nehme, der nicht existiert, liefert "SysErrorMessage()" keine Fehlerbeschreibung. :evil:
Wieso? :gruebel:

kcx 26. Mär 2008 15:26

Re: Frage zu "SysErrorMessage()" und "GetLast
 
Scheinbar nimmt "SysErrorMessage()" keine WinInet Fehlercodes an. Gibt es dafür evtl. eine andere Funktion oder so?

Muetze1 26. Mär 2008 15:36

Re: Frage zu "SysErrorMessage()" und "GetLast
 
Zitat:

Zitat von kcx
Gibt es dafür evtl. eine andere Funktion oder so?

Ja, die dafür von der WinINet zur Verfügung gestellte Funktion InternetGetLastResponseInfo(), welche du immer aufrufen solltest, wenn GetLastError() dir ERROR_INTERNET_EXTENDED_ERROR zurück gibt.

kcx 26. Mär 2008 15:52

Re: Frage zu "SysErrorMessage()" und "GetLast
 
Nur gibt "GetLastError()" mir nicht ERROR_INTERNET_EXTENDED_ERROR zurück und wenn ich "InternetGetLastResponseInfo()" trotzdem aufrufe, bekomme ich nur die Antworten vom FTP Server zurück, aber keine Fehlerbeschreibung! :gruebel:

Muetze1 26. Mär 2008 21:23

Re: Frage zu "SysErrorMessage()" und "GetLast
 
Hmm, ok, ich probier selber mal ein wenig rum...

kcx 26. Mär 2008 23:39

Re: Frage zu "SysErrorMessage()" und "GetLast
 
Zitat:

Zitat von Muetze1
Hmm, ok, ich probier selber mal ein wenig rum...

Danke, haste etwas rausgefunden?

Ich hoffe mal nicht, dass ich mir extra eine Funktion basteln muss, die jeden einzelnen Code überprüft... :|

Muetze1 27. Mär 2008 00:49

Re: Frage zu "SysErrorMessage()" und "GetLast
 
Zitat:

Zitat von kcx
Danke, haste etwas rausgefunden?

Jain, eigentlich nur, dass...

Zitat:

Zitat von kcx
Ich hoffe mal nicht, dass ich mir extra eine Funktion basteln muss, die jeden einzelnen Code überprüft... :|

... ich genau das gemacht hatte bei meinem Beispielcode. Ich habe es nochmal getestet, die SysErrorMessage() Funktion liefer einen Leerstring, somit bleibt dir nichts anderes übrig.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:28 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