![]() |
Rückgabewert könnte undefiniert sein!
Hallo leute,
Hab irgendwie gerade gemerkt, dass es einen Unterschied gibt zwischen projekt erstellen und projekt Compillieren... Auch wenn ich nicht weiss wo der ist, weiss ich das bei projekt erstellen folgender fehler kommt:
Code:
in folgendem Code:
[Warnung] IdGlobalProtocols.pas(1445): W1035 Rückgabewert der Funktion 'GetGMTDateByName' könnte undefiniert sein
Delphi-Quellcode:
jetzt erstens habe ich diesen code irgendwie noch nie gesehen und zweitens ist er in der "IdClobalProtocols" was das auch immer bedeuten mag :stupid:
function GetGMTDateByName(const AFileName : String) : TDateTime;
{$IFDEF WINDOWS} var LRec : TWin32FindData; LHandle : THandle; LTime : Integer; {$ENDIF} {$IFDEF LINUX} var LRec : TStatBuf; LTime : Integer; LU : TUnixTime; {$ENDIF} begin {$IFDEF DOTNET} if not System.IO.File.Exists(AFileName) then Result := -1 else Result := System.IO.File.GetLastWriteTimeUtc(AFileName).ToOADate; {$ENDIF} {$IFDEF WINDOWS} LHandle := FindFirstFile(PChar(AFileName), LRec); if LHandle <> INVALID_HANDLE_VALUE then begin Windows.FindClose(LHandle); if (LRec.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY) = 0 then begin FileTimeToDosDateTime(LRec.ftLastWriteTime, LongRec(LTime).Hi, LongRec(LTime).Lo); Result := FileDateToDateTime(LTime); end; end; {$ENDIF} {$IFDEF LINUX} if stat(PChar(AFileName), LRec) = 0 then begin LTime := LRec.st_mtime; gmtime_r(@LTime, LU); Result := EncodeDate(LU.tm_year + 1900, LU.tm_mon + 1, LU.tm_mday) + EncodeTime(LU.tm_hour, LU.tm_min, LU.tm_sec, 0); end else begin Result := -1; end; {$ENDIF} end; Naja ich weiss jetzt halt nicht wie ich den fehler weg kriege.... :cry: :cry: Und desshalb kann ich mein projekt nicht "erstellen" auch wenn "compillieren" geht. bitte helft mir mfg headi |
Re: Rückgabewert könnte undefiniert sein!
Hallo,
eine Warnung ist - wie der Name schon sagt - eine Warnung und kein Fehler ;-) . D.h., sie hindert nicht die Compilierung / Erstellung. Bekommst du am Ende eine Meldung "Compiliert. Warnungen sind Vorhanden." bzw. "Projekt erstellt. Warnungen..."? Das bedeutet, es hat funktioniert, nur man könnte eben diese Warnung vermeiden. In deinem Falle halte ich das aber für unnötig, da die Warnung in einer INDY-Unit auftritt und nicht in einer eigenen Funktion. Wenn du keine Meldung bekommst, schalte unter Umgebungsoptionen "Debugger-Fortschritt zeigen" ein. Gruß, ManuMF |
Re: Rückgabewert könnte undefiniert sein!
Achso ok klappt jetzt :thumb:
Nur wie ist das denn jetzt genau, gibt es doch keinen Unterschied zwischen: projekt erstellen und grüner pfeil (F9) ?? Gibt es da verschiedene Files? Naja also vielen dank nochmal mfg headi |
Re: Rückgabewert könnte undefiniert sein!
[>] heißt nur, dass das Programm nach dem Erstellen gestartet wird.
Gruß, ManuMF |
Re: Rückgabewert könnte undefiniert sein!
Da du die Sourcen hast, kannst du sie auch reparieren.
Delphi-Quellcode:
Das ist naemlich wirklich ein Fehler in der Funktion.
{$IFDEF WINDOWS}
Result := -1; LHandle := FindFirstFile(PChar(AFileName), LRec); if LHandle <> INVALID_HANDLE_VALUE then begin Windows.FindClose(LHandle); if (LRec.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY) = 0 then begin FileTimeToDosDateTime(LRec.ftLastWriteTime, LongRec(LTime).Hi, LongRec(LTime).Lo); Result := FileDateToDateTime(LTime); end; end; {$ENDIF} Die Linux und die .net Version liefern beide -1 wenn es kein File ist. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:17 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-2025 by Thomas Breitkreuz