Compartilhar via


Função UnDecorateSymbolName (dbghelp.h)

Desdecora o nome do símbolo C++ decorado especificado.

Sintaxe

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

Parâmetros

[in] name

O nome do símbolo C++ decorado. Esse nome pode ser identificado pelo primeiro caractere do nome, que é sempre um ponto de interrogação (?).

[out] outputString

Um ponteiro para um buffer de cadeia de caracteres que recebe o nome não decorado.

[in] maxStringLength

O tamanho do buffer UnDecoratedName , em caracteres.

[in] flags

As opções de como o nome decorado não é decorado. Esse parâmetro pode ser zero ou mais dos valores a seguir.

Valor Significado
UNDNAME_32_BIT_DECODE
0x0800
Cancelar a codificação de nomes decorados de 32 bits.
UNDNAME_COMPLETE
0x0000
Habilite a undecoração completa.
UNDNAME_NAME_ONLY
0x1000
Desdecora apenas o nome da declaração primária. Retorna [scope::]name. Expande os parâmetros de modelo.
UNDNAME_NO_ACCESS_SPECIFIERS
0x0080
Desabilite a expansão dos especificadores de acesso para membros.
UNDNAME_NO_ALLOCATION_LANGUAGE
0x0010
Desabilite a expansão do especificador de linguagem de declaração.
UNDNAME_NO_ALLOCATION_MODEL
0x0008
Desabilite a expansão do modelo de declaração.
UNDNAME_NO_ARGUMENTS
0x2000
Não cancele a codificação de argumentos de função.
UNDNAME_NO_CV_THISTYPE
0x0040
Desabilite a expansão de modificadores codeview nesse tipo para declaração primária.
UNDNAME_NO_FUNCTION_RETURNS
0x0004
Desabilite a expansão de tipos de retorno para declarações primárias.
UNDNAME_NO_LEADING_UNDERSCORES
0x0001
Remova os sublinhados principais das palavras-chave da Microsoft.
UNDNAME_NO_MEMBER_TYPE
0x0200
Desabilite a expansão do atributo estático ou virtual dos membros.
UNDNAME_NO_MS_KEYWORDS
0x0002
Desabilitar a expansão de palavras-chave da Microsoft.
UNDNAME_NO_MS_THISTYPE
0x0020
Desabilite a expansão de palavras-chave da Microsoft nesse tipo para declaração primária.
UNDNAME_NO_RETURN_UDT_MODEL
0x0400
Desabilite a expansão do modelo da Microsoft para retornos de tipo definido pelo usuário.
UNDNAME_NO_SPECIAL_SYMS
0x4000
Não indecora nomes especiais, como vtable, vcall, vector, metatype e assim por diante.
UNDNAME_NO_THISTYPE
0x0060
Desabilite todos os modificadores nesse tipo.
UNDNAME_NO_THROW_SIGNATURES
0x0100
Desabilite a expansão de assinaturas de lançamento para funções e ponteiros para funções.

Valor retornado

Se a função for bem-sucedida, o valor retornado será o número de caracteres no buffer UnDecoratedName , não incluindo o terminador NULL.

Se a função falhar, o valor retornado será zero. Para recuperar informações de erro estendidas, chame GetLastError.

Se a função falhar e retornar zero, o conteúdo do buffer UnDecoratedName será indeterminado.

Comentários

Para usar símbolos não decorados, chame a função SymSetOptions com a opção SYMOPT_UNDNAME .

Todas as funções DbgHelp, como esta, são threaded único. Portanto, chamadas de mais de um thread para essa função provavelmente resultarão em comportamento inesperado ou corrupção de memória. Para evitar isso, você deve sincronizar todas as chamadas simultâneas de mais de um thread para essa função.

Para chamar a versão Unicode dessa função, defina DBGHELP_TRANSLATE_TCHAR.

Exemplos

Para obter um exemplo, consulte Recuperando nomes de símbolos não decorados.

Requisitos

   
Plataforma de Destino Windows
Cabeçalho dbghelp.h
Biblioteca Dbghelp.lib
DLL Dbghelp.dll
Redistribuível DbgHelp.dll 5.1 ou posterior

Confira também

Funções DbgHelp

SymSetOptions