C'est un peu laid, mais si vous savez avec certitude que:
- La chaîne contient au moins 4 TCHAR (3 caractères plus la terminaison NUL)
- Le contenu de la chaîne peut être modifiée (qui est le cas dans votre exemple).
- Vous ne devez pas garder la chaîne d'origine intacte
Vous pouvez simplement mettre un NUL se terminant à la 4e position pour faire la chaîne 3 ombles longue.
szDestPathRoot[3] = _T('\0');
Notez que cette opération est destructeur pour la chaîne d'origine
Vous devriez vraiment utiliser une classe de chaîne dans le code C++ bien.
Bonjour, vous devez utiliser 'MAX_PATH + 1' pour éviter les débordements. – Benoit
@Benoit: 'MAX_PATH' est 260, ce qui inclut la longueur de terminaison nulle. (La longueur de chemin maximale prise en charge est de 255 caractères) Voir http://msdn.microsoft.com/en-us/library/aa365247.aspx –
Votre chaîne littérale doit être incluse dans la macro '_T()'. Cela en fera un littéral de chaîne large dans les constructions Unicode. –