pornsmuRf Geschrieben 27. Juli 2006 Geschrieben 27. Juli 2006 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 Zitieren
Guybrush Threepwood Geschrieben 27. Juli 2006 Geschrieben 27. Juli 2006 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. Zitieren
Klotzkopp Geschrieben 27. Juli 2006 Geschrieben 27. Juli 2006 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. Zitieren
Empfohlene Beiträge
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.