UnDecorateSymbolName

UnDecorateSymbolName 函式反修飾指定已修飾的 C++ 符號名。

語法,參數,Flags,返回值,提醒,要求,

語法

 DWORD WINAPI UnDecorateSymbolName(   _In_ PCTSTR DecoratedName,   _Out_ PTSTR UnDecoratedName,   _In_ DWORD UndecoratedLength,   _In_ DWORD Flags );

參數

DecoratedName [輸入]
已修飾的 C++ 符號名。此名稱能以始終為問號 (?) 的首字元鑑別。
UnDecoratedName [輸出]
指向字元串緩衝區的指針,該緩衝區接收未修飾的名字。
UndecoratedLength [輸入]
UnDecoratedName 緩衝區的大小,為字元數。
Flags [輸入]
用於反修飾已修飾名稱的方式的選項。此參數能為零或更多個下列值。

Flags

含義
UNDNAME_32_BIT_DECODE
0x0800
反修飾 32 位已修飾名。
UNDNAME_COMPLETE0x0000
啟用完全的反修飾。
UNDNAME_NAME_ONLY
0x1000
只反修飾初等聲明的名稱。返回 [作用域::]名稱 。不展開模板形參。
UNDNAME_NO_ACCESS_SPECIFIERS0x0080
禁用成員的訪問指定符的展開。
UNDNAME_NO_ALLOCATION_LANGUAGE0x0010
禁用聲明語言說明符的展開。
UNDNAME_NO_ALLOCATION_MODEL
0x0008
禁用聲明模型的展開。
UNDNAME_NO_ARGUMENTS0x2000
不反修飾函式參數。
UNDNAME_NO_CV_THISTYPE0x0040
禁用初等聲明的 this 類型上的 CodeView 修飾符的展開。
UNDNAME_NO_FUNCTION_RETURNS0x0004
禁用初等聲明的返回類型展開。
UNDNAME_NO_LEADING_UNDERSCORES0x0001
從 Microsoft 關鍵字中移除前導下劃線。
UNDNAME_NO_MEMBER_TYPE0x0200
禁用成員的 static 或 virtual 屬性的展開。
UNDNAME_NO_MS_KEYWORDS0x0002
禁用 Microsoft 關鍵字的展開。
UNDNAME_NO_MS_THISTYPE0x0020
禁用初等聲明的 this 類型上的 Microsoft 關鍵字的展開。
UNDNAME_NO_RETURN_UDT_MODEL0x0400
禁用用戶定義類型返回的 Microsoft 模型的展開。
UNDNAME_NO_SPECIAL_SYMS0x4000
不反修飾特殊名稱,如 vtable 、 vcall 、 vector 和 metatype 等。
UNDNAME_NO_THISTYPE0x0060
禁用 this 類型上的所有修飾符。
UNDNAME_NO_THROW_SIGNATURES0x0100
禁用函式和函式指針的 throw 簽名的展開。

返回值

若函式成功,則返回 UnDecoratedName 緩衝區中的字元數,不包括 NULL 終止符。
若函式失敗,則返回值為零。欲取得額外的錯誤信息,需調用 GetLastError
若函式失敗且返回零,則 UnDecoratedName 緩衝區的內容不確定。

提醒

為使用未修飾的符號,請用 SYMOPT_UNDNAME 選項調用 SymSetOptions函式。
所有DbgHelp 函式,譬如此函式,都是單執行緒的。從而從多於一個執行緒調用此函式將很可能導致不期待行為或記憶體錯誤。為避免這種事,你必須同步從多於一個執行緒到此函式的調用。
欲調用此函式的 Unicode 版本,需定義 DBGHELP_TRANSLATE_TCHAR

要求

可再發行版
DbgHelp.dll 5.1 或更新的版本
頭檔案
Dbghelp.h
Dbghelp.lib
DLL
Dbghelp.dll
Unicode 及 ANSI 名
UnDecorateSymbolNameW (Unicode) 及 UnDecorateSymbolName (ANSI)

相關詞條

熱門詞條

聯絡我們