Partager via


UnDecorateSymbolName, fonction (dbghelp.h)

Décore le nom du symbole C++ décoré spécifié.

Syntaxe

DWORD IMAGEAPI UnDecorateSymbolName(
  [in]  PCSTR name,
  [out] PSTR  outputString,
  [in]  DWORD maxStringLength,
  [in]  DWORD flags
);

Paramètres

[in] name

Nom du symbole C++ décoré. Ce nom peut être identifié par le premier caractère du nom, qui est toujours un point d’interrogation (?).

[out] outputString

Pointeur vers une mémoire tampon de chaîne qui reçoit le nom non décoré.

[in] maxStringLength

Taille de la mémoire tampon UnDecoratedName , en caractères.

[in] flags

Options pour la façon dont le nom décoré n’est pas décoré. Ce paramètre peut être égal à zéro ou plusieurs des valeurs suivantes.

Valeur Signification
UNDNAME_32_BIT_DECODE
0x0800
Défaire les noms décorés 32 bits.
UNDNAME_COMPLETE
0x0000
Activez la décoration complète.
UNDNAME_NAME_ONLY
0x1000
Supprimez uniquement le nom de la déclaration principale. Retourne [scope::]name. Développe les paramètres de modèle.
UNDNAME_NO_ACCESS_SPECIFIERS
0x0080
Désactivez l’extension des spécificateurs d’accès pour les membres.
UNDNAME_NO_ALLOCATION_LANGUAGE
0x0010
Désactivez l’expansion du spécificateur de langue de déclaration.
UNDNAME_NO_ALLOCATION_MODEL
0x0008
Désactivez l’expansion du modèle de déclaration.
UNDNAME_NO_ARGUMENTS
0x2000
N’annulez pas les arguments de fonction.
UNDNAME_NO_CV_THISTYPE
0x0040
Désactivez l’extension des modificateurs CodeView sur le ce type pour la déclaration principale.
UNDNAME_NO_FUNCTION_RETURNS
0x0004
Désactivez l’extension des types de retour pour les déclarations primaires.
UNDNAME_NO_LEADING_UNDERSCORES
0x0001
Supprimez les traits de soulignement de début des mots clés Microsoft.
UNDNAME_NO_MEMBER_TYPE
0x0200
Désactivez l’extension de l’attribut statique ou virtuel des membres.
UNDNAME_NO_MS_KEYWORDS
0x0002
Désactivez l’expansion des mots clés Microsoft.
UNDNAME_NO_MS_THISTYPE
0x0020
Désactivez l’extension des mots clés Microsoft sur ce type pour la déclaration principale.
UNDNAME_NO_RETURN_UDT_MODEL
0x0400
Désactivez l’expansion du modèle Microsoft pour les retours de type défini par l’utilisateur.
UNDNAME_NO_SPECIAL_SYMS
0x4000
Ne supprimez pas les noms spéciaux, tels que vtable, vcall, vector, métatype, etc.
UNDNAME_NO_THISTYPE
0x0060
Désactivez tous les modificateurs sur ce type.
UNDNAME_NO_THROW_SIGNATURES
0x0100
Désactivez l’expansion des signatures de levée pour les fonctions et les pointeurs vers les fonctions.

Valeur retournée

Si la fonction réussit, la valeur de retour est le nombre de caractères dans la mémoire tampon UnDecoratedName , sans inclure la marque de fin NULL.

Si la fonction échoue, la valeur de retour est égale à zéro. Pour récupérer des informations d’erreur étendues, appelez GetLastError.

Si la fonction échoue et retourne zéro, le contenu de la mémoire tampon UnDecoratedName est indéterminé.

Notes

Pour utiliser des symboles non décorées, appelez la fonction SymSetOptions avec l’option SYMOPT_UNDNAME .

Toutes les fonctions DbgHelp, telles que celle-ci, sont à thread unique. Par conséquent, les appels de plusieurs threads à cette fonction entraîneront probablement un comportement inattendu ou une altération de la mémoire. Pour éviter cela, vous devez synchroniser tous les appels simultanés de plusieurs threads vers cette fonction.

Pour appeler la version Unicode de cette fonction, définissez DBGHELP_TRANSLATE_TCHAR.

Exemples

Pour obtenir un exemple, consultez Récupération de noms de symboles non décorées.

Spécifications

   
Plateforme cible Windows
En-tête dbghelp.h
Bibliothèque Dbghelp.lib
DLL Dbghelp.dll
Composant redistribuable DbgHelp.dll 5.1 ou version ultérieure

Voir aussi

Fonctions DbgHelp

SymSetOptions