Partager via


CSimpleStringT::GetBufferSetLength

Retourne un pointeur dans la mémoire tampon caractères interne de l'objet d' CSimpleStringT , tronquant ou élevant sa longueur si nécessaire pour faire correspondre exactement à la longueur spécifiée dans nLength.

PXSTR GetBufferSetLength(
   int nLength
);

Paramètres

  • nLength
    La taille exacte du tampon de caractères d' CSimpleStringT caractères.

Valeur de retour

Un pointeur d' PXSTR en mémoire tampon de caractères (se terminant par null) de l'objet.

Notes

Appelez cette méthode pour récupérer une longueur spécifiée de la mémoire tampon interne de l'objet d' CSimpleStringT . Le pointeur retourné d' PXSTR n'est pas const et n'autorise pas la modification directe du contenu d' CSimpleStringT .

Si vous utilisez le pointeur retourné par GetBufferSetLength pour modifier le contenu de la chaîne, appelez ReleaseBuffer pour mettre à jour l'état interne d' CsimpleStringTavant d'utiliser toutes les méthodes d' CSimpleStringT .

L'adresse retournée par GetBufferSetLength peut ne pas être valide après l'appel à ReleaseBuffer car des opérations supplémentaires d' CSimpleStringT peuvent provoquer la mémoire tampon d' CSimpleStringT d'être réaffectées. La mémoire tampon n'est pas réassignée si vous ne modifiez pas la longueur d' CSimpleStringT.

La mémoire tampon est automatiquement libérée lorsque l'objet d' CSimpleStringT est détruit.

Si vous maintenez la longueur de chaîne vous-même, n'ajoutez pas le caractère NULL de fin. Vous devez spécifier la longueur finale de chaîne lorsque vous libérez la mémoire tampon à l'aide de ReleaseBuffer. Si vous ajoutez un caractère NULL de fin lorsque vous appelez ReleaseBuffer, exécutez à 1 (la valeur par défaut) pour la longueur à ReleaseBuffer, et ReleaseBufferstrlen exécuteront dans la mémoire tampon pour déterminer sa longueur.

Pour plus d'informations sur le décompte de références, consultez les articles suivants :

Exemple

L'exemple suivant illustre l'utilisation du mot clé CSimpleStringT::GetBufferSetLength :

CSimpleString str(pMgr);
LPTSTR pstr = str.GetBufferSetLength(3);
pstr[0] = _T('C');
pstr[1] = _T('u');
pstr[2] = _T('p');

// No need for trailing zero or call to ReleaseBuffer() 
// because GetBufferSetLength() set it for us.

str += _T(" soccer is best!");
ASSERT(_tcscmp(str, _T("Cup soccer is best!")) == 0);   

Configuration requise

en-tête : atlsimpstr.h

Voir aussi

Référence

CSimpleStringT, classe

CSimpleStringT::GetBuffer

CSimpleStringT::ReleaseBuffer