Partager via


Fonction UnDecorateSymbolNameW (dbghelp.h)

Annule le nom de symbole C++ décoré spécifié.

Syntaxe

DWORD IMAGEAPI UnDecorateSymbolNameW(
  [in]  PCWSTR name,
  [out] PWSTR  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écodé.

[in] maxStringLength

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

[in] flags

Les options de 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
Undecorate 32 bits noms décorés.
UNDNAME_COMPLETE
0x0000
Activez la correction complète.
UNDNAME_NAME_ONLY
0x1000
Annuler la décodage uniquement du nom de la déclaration principale. Renvoie [scope ::]name. Développe les paramètres du 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’extension du spécificateur de langage de déclaration.
UNDNAME_NO_ALLOCATION_MODEL
0x0008
Désactivez l’extension 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 de pour la déclaration principale.
UNDNAME_NO_FUNCTION_RETURNS
0x0004
Désactivez l’extension des types de retour pour les déclarations principales.
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’extension des mots clés Microsoft.
UNDNAME_NO_MS_THISTYPE
0x0020
Désactivez l’extension des mots clés Microsoft sur le ce type de pour la déclaration principale.
UNDNAME_NO_RETURN_UDT_MODEL
0x0400
Désactivez l’extension du modèle Microsoft pour les retours de type défini par l’utilisateur.
UNDNAME_NO_SPECIAL_SYMS
0x4000
N’annulez pas les noms spéciaux, tels que vtable, vcall, vector, metatype, etc.
UNDNAME_NO_THISTYPE
0x0060
Désactivez tous les modificateurs sur le ce type de.
UNDNAME_NO_THROW_SIGNATURES
0x0100
Désactivez l’extension des signatures levées pour les fonctions et les pointeurs vers des fonctions.

Valeur de retour

Si la fonction réussit, la valeur de retour correspond au nombre de caractères de la mémoire tampon UnDecoratedName tampon, 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é.

Remarques

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

Toutes les fonctions DbgHelp, comme celle-ci, sont monothread. Par conséquent, les appels de plusieurs threads à cette fonction entraîneront probablement une altération inattendue du comportement ou 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 des noms de symboles non décodés.

Note

L’en-tête dbghelp.h définit UnDecorateSymbolName comme alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

Exigences

Exigence Valeur
plateforme cible Windows
d’en-tête dbghelp.h
bibliothèque Dbghelp.lib
DLL Dbghelp.dll
redistribuable DbgHelp.dll 5.1 ou version ultérieure

Voir aussi

fonctions DbgHelp

SymSetOptions