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.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

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...