UnDecorateSymbolName 函式 (dbghelp.h)

取消編碼指定的裝飾 C++ 符號名稱。

語法

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

參數

[in] name

裝飾的 C++ 符號名稱。 這個名稱可以透過名稱的第一個字元來識別,這一律是問號 (?) 。

[out] outputString

接收未指定名稱之字串緩衝區的指標。

[in] maxStringLength

UnDecoratedName緩衝區的大小,以字元為單位。

[in] flags

如何取消裝飾名稱的選項。 此參數可以是下列值的零或多個。

意義
UNDNAME_32_BIT_DECODE
0x0800
取消編碼 32 位裝飾名稱。
UNDNAME_COMPLETE
0x0000
啟用完整取消記錄。
UNDNAME_NAME_ONLY
0x1000
只取消主要宣告的名稱。 傳回 [scope::]name。 會展開範本參數。
UNDNAME_NO_ACCESS_SPECIFIERS
0x0080
停用成員的存取規範展開。
UNDNAME_NO_ALLOCATION_LANGUAGE
0x0010
停用宣告語言規範的擴充。
UNDNAME_NO_ALLOCATION_MODEL
0x0008
停用宣告模型的擴充。
UNDNAME_NO_ARGUMENTS
0x2000
請勿取消編碼函式引數。
UNDNAME_NO_CV_THISTYPE
0x0040
針對主要宣告停用 類型上的 CodeView 修飾詞展開。
UNDNAME_NO_FUNCTION_RETURNS
0x0004
停用主要宣告的傳回型別擴充。
UNDNAME_NO_LEADING_UNDERSCORES
0x0001
從 Microsoft 關鍵字移除前置底線。
UNDNAME_NO_MEMBER_TYPE
0x0200
停用成員靜態或虛擬屬性的擴充。
UNDNAME_NO_MS_KEYWORDS
0x0002
停用 Microsoft 關鍵字的擴充。
UNDNAME_NO_MS_THISTYPE
0x0020
針對主要宣告停用 類型上的 Microsoft 關鍵字展開。
UNDNAME_NO_RETURN_UDT_MODEL
0x0400
停用使用者定義型別傳回的 Microsoft 模型擴充。
UNDNAME_NO_SPECIAL_SYMS
0x4000
請勿取消特殊名稱,例如 vtable、vcall、vector、metatype 等等。
UNDNAME_NO_THISTYPE
0x0060
停用 類型上的所有修飾詞。
UNDNAME_NO_THROW_SIGNATURES
0x0100
停用函式和函式指標的擲回簽章展開。

傳回值

如果函式成功,則傳回值是 UnDecoratedName 緩衝區中的字元數,不包含 Null 結束字元。

如果此函式失敗,則傳回值為零。 若要擷取擴充的錯誤資訊,請呼叫 GetLastError

如果函式失敗並傳回零, 則 UnDecoratedName 緩衝區的內容不會決定。

備註

若要使用未編碼的符號,請使用SYMOPT_UNDNAME選項呼叫SymSetOptions函式。

所有 DbgHelp 函式,例如此函式都是單一執行緒。 因此,從一個以上的執行緒呼叫此函式可能會導致非預期的行為或記憶體損毀。 若要避免這種情況,您必須將所有並行呼叫從一個以上的執行緒同步至此函式。

若要呼叫此函式的 Unicode 版本,請定義 DBGHELP_TRANSLATE_TCHAR

範例

如需範例,請參閱 擷取未取消編碼的符號名稱

需求

   
目標平台 Windows
標頭 dbghelp.h
程式庫 Dbghelp.lib
Dll Dbghelp.dll
可轉散發套件 DbgHelp.dll 5.1 或更新版本

另請參閱

DbgHelp 函式

SymSetOptions