Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Alternative für String Assign (https://www.delphipraxis.net/192152-alternative-fuer-string-assign.html)

EWeiss 23. Mär 2017 17:03

AW: Alternative für String Assign
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1365275)
Zitat:

Zitat von Neutral General (Beitrag 1365273)
Du kannst die LARGE_INTEGER ja selbst definieren.

Ist gar nicht nötig (aus Winapi.Windows):

Delphi-Quellcode:
  PLargeInteger = ^TLargeInteger;
  _LARGE_INTEGER = record
    case Integer of
    0: (
      LowPart: DWORD;
      HighPart: Longint);
    1: (
      QuadPart: LONGLONG);
  end;
  {$EXTERNALSYM _LARGE_INTEGER}
  {$NODEFINE TLargeInteger}
  TLargeInteger = Int64;
  LARGE_INTEGER = _LARGE_INTEGER;
  {$EXTERNALSYM LARGE_INTEGER}

Das Problem ist das SetFilePointer keinen LARGE_INTEGER mag es will Integer.
LARGE_INTEGER kann ich definieren aber nicht SetFilePointerEx

gruss

Neutral General 23. Mär 2017 17:04

AW: Alternative für String Assign
 
Warum kannst du SetFilePointerEx nicht definieren?

hoika 23. Mär 2017 17:10

AW: Alternative für String Assign
 
Hallo,
SetFilePointerEx definieren

http://stackoverflow.com/questions/4...physical-media

Uwe Raabe 23. Mär 2017 17:15

AW: Alternative für String Assign
 
Zitat:

Zitat von EWeiss (Beitrag 1365298)
Das Problem ist das SetFilePointer keinen LARGE_INTEGER mag es will Integer.

Das stimmt nicht!
Delphi-Quellcode:
function SetFilePointerEx(hFile: THandle; liDistanceToMove: TLargeInteger;
  const lpNewFilePointer: PLargeInteger; dwMoveMethod: DWORD): BOOL; stdcall;
Einmal wird ein
Delphi-Quellcode:
TLargeInteger
erwartet (=
Delphi-Quellcode:
Int64
s.o.) und das andere Mal ein
Delphi-Quellcode:
PLargeInteger
. Ein
Delphi-Quellcode:
LARGE_INTEGER
kommt dort überhaupt nicht vor (
Delphi-Quellcode:
Integer
übrigens auch nicht).

Wenn du also mit
Delphi-Quellcode:
TLargeInteger
bzw. mit Pointern darauf arbeitest sollte das funktionieren.

EWeiss 23. Mär 2017 17:28

AW: Alternative für String Assign
 
Hmm nun ja.
Ich habe es so definiert wie gezeigt.

Delphi-Quellcode:
var
   li: LARGE_INTEGER;
begin

   li.LowPart := PosByte;
Delphi-Quellcode:
var
   li: TLargeInteger;
begin

   li:= PosByte;
TLargeInteger geht.

gruss

Neutral General 23. Mär 2017 17:32

AW: Alternative für String Assign
 
Deswegen musst du ja SetFilePointerEx benutzen.

EWeiss 23. Mär 2017 18:05

AW: Alternative für String Assign
 
Zitat:

Zitat von Neutral General (Beitrag 1365305)
Deswegen musst du ja SetFilePointerEx benutzen.

ja.. Werde ich dann wohl selbst definieren müssen.

gruss

EWeiss 23. Mär 2017 18:19

AW: Alternative für String Assign
 
Sorry der Kram will wieder mal nicht.
Fehler 183.

Habe versucht SetFilePointerEx zu definieren aber es kommen nur Kompatibilitäts Probleme.
Ok muss mich nochmal schlau machen.

gruss

bra 23. Mär 2017 18:24

AW: Alternative für String Assign
 
Funktioniert das nicht (erste Antwort):

http://stackoverflow.com/questions/4...physical-media

Delphi-Quellcode:
function GetFileSizeEx(hFile: THandle; var lpFileSize: Int64): BOOL;
    stdcall; external 'kernel32.dll';
function SetFilePointerEx(hFile: THandle; liDistanceToMove: Int64;
    lpNewFilePointer: PInt64; dwMoveMethod: DWORD): BOOL;
    stdcall; external 'kernel32.dll';

Luckie 23. Mär 2017 18:24

AW: Alternative für String Assign
 
Dann mach doch bitte für das neue Problem auch einen neuen Thread auf.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:09 Uhr.
Seite 3 von 4     123 4      

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