Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Problem z SHFileOperation()

Ostatnio zmodyfikowano 2013-07-26 00:53
Autor Wiadomość
luky92
Temat założony przez niniejszego użytkownika
Problem z SHFileOperation()
» 2013-07-20 23:40:32
Mam taki kod:
C/C++
void kopia( std::string skad, std::string gdzie )
{
    SHFILEOPSTRUCT operacja = { 0 };
   
    LPSTR a, b;
    a = "E:\\MERCEDES-BENZ VOL 60 LIVE MONACHUM\0";
    b = "E:\\aa\0";
    char dest[ MAX_PATH ] = { 0 };
    char src[ MAX_PATH ] = { 0 };
    ;
    //strcpy(dest, a.c_str());
    //strcpy(src, b.c_str());
    //dest[a.length()+2]='\0';
    //ZeroMemory(&operacja, sizeof(SHFILEOPSTRUCT));
    //LPSTR a= const_cast<char *>(skad.c_str());
    //a+='\0';
    //LPSTR b=const_cast<char*>(gdzie.c_str());
    //b+='\0';
    operacja.hwnd = hWnd;
    operacja.wFunc = FO_COPY;
    operacja.pFrom = a;
    //operacja.pFrom=src;
    operacja.pTo = b;
    //operacja.pTo=dest;
    //operacja.fFlags=FOF_SILENT | FOF_NOCONFIRMATION | FOF_NOERRORUI | FOF_NOCONFIRMMKDIR;
    if( int i =!SHFileOperation( & operacja ) )
    {
        HDC hdc = GetDC( hWnd );
        TextOut( hdc, 0, 0, "Weszło", 6 );
        if( operacja.fAnyOperationsAborted == false )
        {
            DoLogu( skad, KOPIA_SUKCES );
        }
        else
        {
            DoLogu( skad, KOPIA_FAIL_PRZERWANE );
        }
    }
    else
    {
        HDC hdc = GetDC( hWnd );
        TextOut( hdc, 0, 0, "NWeszło", 6 );
        DoLogu( skad, KOPIA_FAIL_FUNKCJA );
    }
}


próbuje wywołać funkcje SHFileOperation ale pomimo moim zdaniem poprawnego wypełnienia struktury nie działa ona prawidłowo (brak okienka postępu) mimo braku ustawienia flag oba foldery istnieją funkcja jest w wersji testowej dlatego a,b maja stała wartość.
System Windows 7 x64 (na takim ma działać aplikacja) IDE visual C++ 2008
Czy ktoś widzi jakiś błąd który może powodowac takie zachowanie tej funkcji??
P-88466
DejaVu
» 2013-07-22 12:48:33
P-88542
luky92
Temat założony przez niniejszego użytkownika
» 2013-07-22 14:58:21
Zwróć uwage że przesyłam testową wartość z dodatkowym zerem mimo to nie działa
P-88552
DejaVu
» 2013-07-22 16:23:31
Katalogi istnieją?
P-88557
luky92
Temat założony przez niniejszego użytkownika
» 2013-07-22 16:37:53
Tak oba katalogi istnieją
P-88561
DejaVu
» 2013-07-22 17:06:55
1. Odczytaj jaki kod błędu zwraca Ci ta funkcja.
2. http://msdn.microsoft.com​/en-us/library/windows/desktop​/bb762164(v=vs.85).aspx
Posty pod powyższym linkiem mówią, że od Windows Vista są jakieś problemy z tą funkcją.
P-88567
luky92
Temat założony przez niniejszego użytkownika
» 2013-07-22 17:33:18
Sprawdziłem prawdopodobnie jest to wina systemu (pierwsze uruchomienie po restarcie systemu zawsze działa poprawnie drugie już nie) funkcja zwraca 0 czyli poprawne parametry myślę że temat można zamknąć chyba że ktoś ma jeszcze jakiś pomysł (mnie sie już skończyły)
P-88576
DejaVu
» 2013-07-22 17:45:18
P-88578
« 1 » 2
  Strona 1 z 2 Następna strona