![]() |
Large_Integer SetFilePointerEx Error 183
Hier die Fortführung
![]() Ich habe jetzt GetFileSizeEx mit eingebunden Die Funktion dahingehend geändert
Delphi-Quellcode:
dementsprechend überall PosByte: Int64 definiert und den BufferSize angepasst. BufferSize: Int64;
function TAnimatePng.FSeek(hFile: THandle; PosByte: Int64): LongInt;
var li: TLargeInteger; // oder Int64 begin li := PosByte; Result := 0; if SetFilePointerEx(hFile, li, nil, FILE_BEGIN) <> 0 then Result := GetLastError(); end; Kommt immer der gleiche Fehler Error 183 EDIT: Denke mal das Problem liegt hier
Delphi-Quellcode:
if SetFilePointerEx(hFile, li, nil, FILE_BEGIN) <> 0 then
result ist aber Bool
Delphi-Quellcode:
if SetFilePointerEx(hFile, li, nil, FILE_BEGIN) = false then
hoffe mal das es so stimmt. War wohl irgendwie überarbeitet gestern Nacht. LOL. gruss |
AW: Large_Integer SetFilePointerEx Error 183
Delphi-Quellcode:
Solltest du nicht machen, da
if SetFilePointerEx(hFile, li, nil, FILE_BEGIN) <> 0 then
Result := GetLastError();
Delphi-Quellcode:
im Erfoglsfall tatsächlich undefiniert sein bzw. noch den Status eines alten API Aufrufs zurückgeben kann.
GetLastError
|
AW: Large_Integer SetFilePointerEx Error 183
Äh:
Code:
Das:
Return value
If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call GetLastError.
Delphi-Quellcode:
ist also falsch. Du musst auf Null testen.
if SetFilePointerEx(hFile, li, nil, FILE_BEGIN) <> 0 then
Result := GetLastError(); |
AW: Large_Integer SetFilePointerEx Error 183
Ich danke für eure Hilfe aber jetzt weis ich gar nichts mehr.
auf = False, oder auf = 0, oder auf = <> 0 gruss |
AW: Large_Integer SetFilePointerEx Error 183
Kommt drauf an, was du machen willst. Willst du auf den Fehlschlag reagieren auf 0.
Zitat:
|
AW: Large_Integer SetFilePointerEx Error 183
Zitat:
Delphi-Quellcode:
if SetFilePointer(hFile, li, nil, FILE_BEGIN) <> 0 then
gleicht error 183. SetFilePointerEx Rückgabe = BOOL
Delphi-Quellcode:
if SetFilePointerEx(hFile, li, nil, FILE_BEGIN) = false then
Was soll da jetzt falsch sein? gruss |
AW: Large_Integer SetFilePointerEx Error 183
Ah. Das ist der Krampf mit den unterschiedlichen Definitionen von Wahrheitswerten von Delphi und WinAPI. Was ist denn Fehler 183 überhaupt?
|
AW: Large_Integer SetFilePointerEx Error 183
Zitat:
Zitat:
@Emil: Kannst du mal mehr Code zeigen? |
AW: Large_Integer SetFilePointerEx Error 183
Zitat:
Ich öffne die Datei auf diese weise
Delphi-Quellcode:
if FOpen(PWideChar(wsFile), 0, 0, hFileIn) = 0 then
begin
Delphi-Quellcode:
Hilft das ?
function TAnimatePng.FOpen(FileName: PWideChar; AccessMode: DWORD; ShareMode: DWORD;
var hFile: THandle): DWORD; var AccessIs: DWORD; ShareIs: DWORD; FlagAndAttribute: DWORD; begin AccessMode := min(max(AccessMode, 0), 2); //0 Nur lesend öffnen. if AccessMode = 0 then AccessIs := GENERIC_READ // 1 Nur zum schreiben öffnen. else if AccessMode = 1 then AccessIs := GENERIC_WRITE // 2 Zum Schreiben und lesen öffen else AccessIs := GENERIC_READ or GENERIC_WRITE; // Kohärenz zwischen 1-4 ShareMode := min(max(ShareMode, 1), 4); // 1 Verweigerter Lese/Schreibzugriff. if ShareMode = 1 then ShareIs := 0 // 2 Verweigerter Schreibzugriff else if ShareMode = 2 then ShareIs := FILE_SHARE_READ // 3 Verweigerter Lesezugriff else if ShareMode = 3 then ShareIs := FILE_SHARE_WRITE // 4 Vollerzugriff else ShareIs := FILE_SHARE_READ or FILE_SHARE_WRITE; if hFile = INVALID_HANDLE_VALUE then FlagAndAttribute := FILE_ATTRIBUTE_NORMAL or FILE_FLAG_WRITE_THROUGH else FlagAndAttribute := FILE_ATTRIBUTE_NORMAL; hFile := CreateFile(FileName, AccessIs, ShareIs, nil, OPEN_ALWAYS, FlagAndAttribute, 0); if hFile = INVALID_HANDLE_VALUE then begin Result := GetLastError(); hFile := 0; exit; end; Result := 0; end; gruss |
AW: Large_Integer SetFilePointerEx Error 183
Zitat:
![]()
Delphi-Quellcode:
folgendes:
OPEN_ALWAYS
Zitat:
Edit: Warum machst du das ganze Gedöhns eigentlich manuell mit der WinAPI und verwendest nicht
Delphi-Quellcode:
?
TFileStream
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:13 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