LPCSTR



  • Also ich hofe mal ich bin hier im richtigen sub-forum geladen ^^'

    also ich habe als übergabeparameter 2 lpcstr und da leuft ürgentwie was schief...

    meine funktion sieht so aus.

    void COPYdir(LPCTSTR srcod, LPCSTR dest)
    {
    SHFILEOPSTRUCT COPYDir;
    ZeroMemory(&COPYDir, sizeof(COPYDir));
    COPYDir.wFunc = FO_COPY;
    COPYDir.pFrom = srcod;
    COPYDir.pTo = dest;
    COPYDir.fFlags=FOF_SILENT | FOF_NOCONFIRMATION;
    SHFileOperation( &COPYDir);
    }
    

    und wird jetzt aufgerufen mit: nem 53 zeichen langen und nem 73 zeichen langem string.

    aber ürgentwie wurschtelt er da die strings rum und beim debuggen steht dann plötzlich mal nen teil des dateipfades der exe drinne, wobei das nur auf den ersten parameter zutrifft.

    hat da jemand ne idee :x



  • Wie rufst du die Funktion auf? So? COPYdir(347rnwdrfd, d "§!)3^902wqWWEQ!"!§!§°@ q2!")? 🙄



  • COPYdir(TemporaryDic,(ExtractFilePath(Application->ExeName)+"Caches\\"+Servers->Items->Strings[Servers->ItemIndex]).c_str());
    

    zur übergabezeit stimmen die parameter 😉
    enden übrigens beide mit dem letzten buchstaben des unterverzeichnisses nicht mit \\ ^^ ( hoffe das dass so richtig. auch wenns hier net das problem is )



  • Du hast den Vertrag zu SHFileOperation nicht richtig gelesen.

    pFrom
    Note This string must be double-null terminated.
    A pointer to one or more source file names. These names should be fully-qualified paths to prevent unexpected results.

    Standard Microsoft MS-DOS wildcard characters, such as "*", are permitted only in the file-name position. Using a wildcard character elsewhere in the string will lead to unpredictable results.

    Although this member is declared as a single null-terminated string, it is actually a buffer that can hold multiple null-delimited file names. Each file name is terminated by a single NULL character. The last file name is terminated with a double NULL character ("\0\0") to indicate the end of the buffer.

    pTo
    Note This string must be double-null terminated.
    A pointer to the destination file or directory name. This parameter must be set to NULL if it is not used. Wildcard characters are not allowed. Their use will lead to unpredictable results.



  • danke danke ❤ ( späte antwort ich weiß. schule und so ^^ )

    habs beim zweiten parameter richtig gemacht, und bei dem nicht. schon komisch ^^.


Log in to reply