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