Problem: Unicode Verwendung ( wstring )



  • Hi,

    ich scheitere gerade an einer trivial aussehenden codestelle:

    void FillSubs( wstring Path, Dir * Root ){
      WIN32_FIND_DATA FindData;
      fill( (char*)&FindData, (char*)&FindData + sizeof(WIN32_FIND_DATA), 0 );
    // Besagte stelle  
      wstring Debug = ( ( Path + ( Root->DirName ) ) + TEXT("\\*") );
    // ..
    

    Path und DirName sind wstring objekte.

    mein problem ist das wenn in Path und DirName etwas steht der letzte string in der operation ignoriert wird. ( man sieht die nutzlose verzweifelte klammerung )

    normalerweise waren solche operationen nie ein problem, aber nun wo ich einmal UNICODE verwenden möchte sind sie es :x

    ( header definition )

    #define UNICODE
    #include <windows.h>
    #include <iostream>
    #include <string>
    #include <vector>
    using namespace std;
    


  • das problem lag hier:

    wstring File = wstring( FindData.cFileName, FindData.cFileName + MAX_PATH );
    

    ich habe forciert das er den gesammten string, also auch die abschluss zeichen übernimmt. damit hat er bei der string addition immer nach dem 2tem aufgehört

    wstring File = wstring( FindData.cFileName );
    

    löst das ganze, war dämlich.. habs selbst grad erst bemerkt :x leider zu spät


Log in to reply