Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

jo...ich muss ein prog schreiben (Visual C++/MFC), dass unter anderem auch die funktion haben soll bestimmte files (*.ll) aus einem angegeben verzeichnis in ein vordefiniertes zu kopieren.

alles kein problem.

nur will ich das ganze gerne mit CopyFileEx machen, um in der CALLBACK fkt. auch den aktuellen kopierstatus abfragen zu können und demnach in einem "kopier-dialog" eine progressbar zu aktualisieren.

das programm lässt sich jetz ohne probleme kompilieren, linken und ausführen, bloß bewirkt der aufruf der fkt CopyFileEx rein gar nix. return davon is 0 und des wars :(

Der Aufruf:


case ID_SETDIR:
ret = CopyFileEx "D:\\test\\test.txt","D:\\asdf.txt",MyCopyProgressRoutine,NULL,
&cancel,COPY_FILE_RESTARTABLE);
[/php]

Die Callbackfkt:

[php]
DWORD CALLBACK MyCopyProgressRoutine(
LARGE_INTEGER TotalFileSize, // file size
LARGE_INTEGER TotalBytesTransferred, // bytes transferred
LARGE_INTEGER StreamSize, // bytes in stream
LARGE_INTEGER StreamBytesTransferred, // bytes transferred for stream
DWORD dwStreamNumber, // current stream
DWORD dwCallbackReason, // callback reason
HANDLE hSourceFile, // handle to source file
HANDLE hDestinationFile, // handle to destination file
LPVOID lpData // from CopyFileEx
)
{
//CDialogTest* ptr = (CDialogTest*)lpData;
// do something with pointer, e.g. ptr->m_Progressbar.Pos blahblah

DWORD percent = TotalBytesTransferred.LowPart*100/TotalFileSize.LowPart;
return TRUE;
}

weiß vllt irgendjemand nen rat??

biiiitte hilfe :(

bye

Geschrieben

Wenn 0 zurückgegeben wird heißt das das ein Fehler aufgetreten ist. Welcher das genau ist kannst du dann mit GetLastError abfragen der dir die genaue Fehlernummer zurückgibt.

Diese Nummer kannst du dann entweder per Hand im Tool "Fehlermeldungen suchen" (das bei Visual Studio dabei ist) nachschauen oder per FormatMessage ´dir den Text holen.

Geschrieben
return TRUE;

Der Rückgabewert der Fortschrittsfunktion ist kein BOOL.

TRUE ist 1, und 1 ist PROGRESS_CANCEL, und zu PROGRESS_CANCEL sagt die MSDN Library:

PROGRESS_CANCEL Cancel the copy operation and delete the destination file.

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...