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
데코레이트된 이름을 디코팅 해제하는 방법에 대한 옵션입니다. 이 매개 변수는 다음 값 중 0개 이상일 수 있습니다.
값 |
의미 |
- 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, 벡터, 메타타입 등과 같은 특수 이름의 서식을 해제하지 마세요.
|
- UNDNAME_NO_THISTYPE
- 0x0060
|
이 형식의 모든 한정자를 사용하지 않도록 설정합니다.
|
- UNDNAME_NO_THROW_SIGNATURES
- 0x0100
|
함수 및 함수에 대한 포인터에 대한 throw 서명 확장을 사용하지 않도록 설정합니다.
|
반환 값
함수가 성공하면 반환 값은 NULL 종결자를 포함하지 않고 UnDecoratedName 버퍼의 문자 수입니다.
함수가 실패하면 반환 값은 0입니다. 확장된 오류 정보를 검색하려면 GetLastError를 호출합니다.
함수가 실패하고 0을 반환하면 UnDecoratedName 버퍼의 콘텐츠가 결정되지 않습니다.
장식되지 않은 기호를 사용하려면 SYMOPT_UNDNAME 옵션을 사용하여 SymSetOptions 함수를 호출합니다.
이와 같은 모든 DbgHelp 함수는 단일 스레드입니다. 따라서 둘 이상의 스레드에서 이 함수로 호출하면 예기치 않은 동작이나 메모리 손상이 발생할 수 있습니다. 이를 방지하려면 둘 이상의 스레드에서 이 함수로의 모든 동시 호출을 동기화해야 합니다.
이 함수의 유니코드 버전을 호출하려면 DBGHELP_TRANSLATE_TCHAR 정의합니다.
예제
예제를 보려면 장식 되지 않은 기호 이름 검색을 참조하세요.
요구 사항
|
|
대상 플랫폼 |
Windows |
헤더 |
dbghelp.h |
라이브러리 |
Dbghelp.lib |
DLL |
Dbghelp.dll |
재배포 가능 파일 |
DbgHelp.dll 5.1 이상 |
추가 정보
DbgHelp 함수
SymSetOptions