Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi CopyFileEx: dwCopyFlags werden nicht erkannt (https://www.delphipraxis.net/169336-copyfileex-dwcopyflags-werden-nicht-erkannt.html)

hans ditter 12. Jul 2012 18:42

CopyFileEx: dwCopyFlags werden nicht erkannt
 
Moin moin!

Ich hab mich mal nach diesem Thread an über CopyFileEx informiert und natürlich MSDN befragt.
CopyFileEx funktioniert soweit sehr gut. Ich würde nur gerne die dwCopyFlags (in der Tabelle bei MSDN nachlesbar) setzten und da hat mein Delphi (Turbo Delphi) ein Problem mit.

Einige dieser Konstanten kennt mein Delphi (z.B. COPY_FILE_FAIL_IF_EXISTS, COPY_FILE_RESTARTABLE), die meisten aber nicht (z.B. COPY_FILE_NO_BUFFERING, COPY_FILE_OPEN_SOURCE_FOR_WRITE,....).

Ich würd allerdings gerne den COPY_FILE_NO_BUFFERING-Flag setzten... aber wie gesagt, schmeißt mir Turbo Delphi dann einen Fehler entgegen, dass dieser Term unbekannt sei. Hier hab ich über Google ("delphi COPY_FILE_NO_BUFFERING konstante") die Unit sdaWindows.pas gefunden und versucht die in meine uses-Klausel einfach mal aufzunehmen... aber leider kennt Delphi auch diese Unit nicht.

Muss ich für die unbekannten Konstanten von CopyFileEx jetzt noch eine Unit runterladen oder die irgendwo selber definieren oder muss ich nur noch eine bestimmte Unit mit einbinden?

Vielen Dank und LG; hans ditter

DeddyH 12. Jul 2012 18:51

AW: CopyFileEx: dwCopyFlags werden nicht erkannt
 
Wenn Dein Delphi sie noch nicht kennt, musst Du sie selbst definieren, der Wert müsste ja im MSDN stehen.

messie 12. Jul 2012 18:56

AW: CopyFileEx: dwCopyFlags werden nicht erkannt
 
Zitat:

Zitat von DeddyH (Beitrag 1174528)
Wenn Dein Delphi sie noch nicht kennt, musst Du sie selbst definieren, der Wert müsste ja im MSDN stehen.

Oder den DWORD-Wert aus MSDN direkt übergeben. Wenn einige flags bekannt sind, dann kann die Funktion auch mehr.
Einige Flags werden scheinbar erst ab Vista unterstützt.

DeddyH 12. Jul 2012 18:59

AW: CopyFileEx: dwCopyFlags werden nicht erkannt
 
Magic Numbers? *Bäh*

hans ditter 12. Jul 2012 19:00

AW: CopyFileEx: dwCopyFlags werden nicht erkannt
 
Heißt das, ich müsste jetzt für COPY_FILE_NO_BUFFERING das so definieren:
Delphi-Quellcode:
const COPY_FILE_NO_BUFFERING = 0x00001000;
bzw. CopyFileEx gleich mit 0x00001000 aufrufen?

Nebenbei, OS ist schon Vista... ist nur mein Delphi was etwas in die Tage gekommen ist. ;)

messie 12. Jul 2012 19:01

AW: CopyFileEx: dwCopyFlags werden nicht erkannt
 
Zitat:

Zitat von DeddyH (Beitrag 1174530)
Magic Numbers? *Bäh*

Tschuldigung, habe gerade in C programmiert und vergessen, dass es Hochsprachen gibt :P

DeddyH 12. Jul 2012 19:05

AW: CopyFileEx: dwCopyFlags werden nicht erkannt
 
In C gibt es doch auch Konstanten, zumindest defines, oder habe ich das falsch in Erinnerung?
@hans:
Delphi-Quellcode:
const
  COPY_FILE_NO_BUFFERING = $00001000;

messie 12. Jul 2012 19:15

AW: CopyFileEx: dwCopyFlags werden nicht erkannt
 
Zitat:

Zitat von DeddyH (Beitrag 1174534)
In C gibt es doch auch Konstanten, zumindest defines, oder habe ich das falsch in Erinnerung

Ja.
Aber wenn Du inmitten von großen Eimern voll * und -> sitzt, greifst Du manchmal gerne zu einer Zahl. Die ist etwas Begreifbares. :lol:

hans ditter 12. Jul 2012 19:22

AW: CopyFileEx: dwCopyFlags werden nicht erkannt
 
:shock: Jetzt geht's gar nicht mehr!!

Ich hab CopyFileEx jetzt mit $0000100 für die dwCopyFlags aufgerufen (ich weiß, hässlich Nummer, aber war erstmal einfacher einzupflegen) und jetzt kopiert der gar nichts mehr. Die Funktion gibt 0 zurück, also ist ein Fehler aufgetreten...

Wie kommt das denn jetzt zustande?

DeddyH 12. Jul 2012 21:20

AW: CopyFileEx: dwCopyFlags werden nicht erkannt
 
Die 1 steht an der falschen Stelle, nicht $00000100, sondern $00001000.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:58 Uhr.
Seite 1 von 2  1 2      

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