Microsoft MVP성태의 닷넷 이야기
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 
(연관된 글이 2개 있습니다.)

예전에, 일반 Win32 DLL이 아닌 MFC 확장 DLL을 공부하면서.
Depends.exe로 export 된 함수를 보면서 인자형에 대해서 하나씩 정리했던 적이 있었습니다.

무식하면... ^^; 손발이 고생한다고 했던가요?
이미 그러한 것을 알아내는 툴을 Microsoft에서 제공하고 있었네요.
다음은 "신영진 (Shin, YoungJin)" <pop@jiniya.net.korea> 님이 답변해 주신 것입니다.

-----------------------------------------------

  C++로 맹글린된 이름의 경우는 파라미터를 알아낼 수 있습니다. C++의 함수
  이름에는 파라미터 정보까지 포함하기 때문이죠. 물론 dll에서 그렇게
  익스포트하는 경우는 잘 없지만, 혹시 그런 형태라면 undname 함수에 함수 이름을
  넣으면 파라미터를 알 수 있습니다.

  undname은 ms의 c++ 이름 장식이 된 것을 해석해 주는 유틸리티 입니다. vc++에
  포함되어 있습니다.


------------------------------------------------

실제로 VS.NET 도움말에서 "undname.exe"로 인덱스를 찾아보면 자세한 설명을 찾을 수 있습니다.
거기 있는 내용 중에서 실행 예제를 아래에 옮겨봅니다.

C:\>undname ?func1@a@@AAEXH@Z
Microsoft (R) C++ Name Undecorator
Copyright (C) Microsoft Corporation 1981-2000. All rights reserved.Undecoration
of :- "?func1@a@@AAEXH@Z"
is :- "private: void __thiscall a::func1(int)"

덧붙여서 다음과 같이 신영진님이 친절한 답변을 해주셨습니다.
------------------------------------------------
  참고적으로 해당 유틸리티는 dbghelp.dll에 있는 UndecorateSymbolName으로
  구현됩니다.


[연관 글]






[최초 등록일: ]
[최종 수정일: 7/28/2021]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




... 121  122  123  124  125  126  127  128  129  130  131  [132]  133  134  135  ...
NoWriterDateCnt.TitleFile(s)
1847정성태2/3/201526453기타: 50. C# - 윈도우에서 dropbox 동기화 폴더 경로 및 종료하는 방법
1846정성태2/2/201535567Windows: 102. 제어판의 프로그램 추가/삭제 항목을 수동으로 실행하고 싶다면? [1]
1845정성태1/26/201537262Windows: 101. 제어판의 "Windows 자격 증명 관리(Manage your credentials)"를 금지시키는 방법
1844정성태1/26/201534281오류 유형: 269. USB 메모리의 용량이 비정상적으로 보여진다면? [7]
1843정성태1/24/201525603VC++: 87. 무시할 수 없는 Visual C++ 런타임 함수 성능
1842정성태1/23/201549421개발 환경 구성: 255. 노트북 키보드에 없는 BREAK 키를 다른 키로 대체하는 방법
1841정성태1/21/201522968오류 유형: 268. Win32 핸들 관련 CLR4 보안 오류 사례
1840정성태1/8/201531239오류 유형: 267. Visual Studio - CodeLens 사용 시 CPU 100% 현상
1839정성태1/5/201523656디버깅 기술: 69. windbg 분석 사례 - cpu 100% 현상 (2)
1838정성태1/4/201544421기타: 49. 윈도우 내레이터(Narrator) 기능 끄는 방법(윈도우에 파란색의 굵은 테두리 선이 나타난다면?) [4]
1837정성태1/4/201530494디버깅 기술: 68. windbg 분석 사례 - 메모리 부족 [1]
1836정성태1/4/201530428디버깅 기술: 67. windbg - 덤프 파일과 handle 정보
1835정성태1/3/201531290개발 환경 구성: 254. SQL 서버 역시 SSL 3.0/TLS 1.0만을 지원하는 듯!
1834정성태1/3/201555817개발 환경 구성: 253. TLS 1.2를 적용한 IIS 웹 사이트 구성
1833정성태1/3/201532214.NET Framework: 490. System.Data.SqlClient는 SSL 3.0/TLS 1.0만 지원하는 듯! [3]
1832정성태1/2/201523760오류 유형: 266. Azure에 응용 프로그램 게시 중 로그인 오류
1831정성태1/1/201532571디버깅 기술: 66. windbg 분석 사례 - cpu 100% 현상 (1) [1]
1830정성태1/1/201531942오류 유형: 265. svchost.exe 프로세스(IP Helper: IPHLPSVC)의 CPU 100% 현상
1829정성태12/16/201435545VC++: 86. Windows Vista부터 바뀐 Credential Provider 예제 분석 (2) [2]파일 다운로드1
1828정성태12/15/201432184VC++: 85. Windows Vista부터 바뀐 Credential Provider 예제 분석 (1) [4]파일 다운로드1
1827정성태12/12/201428407VC++: 84. CredUIPromptForWindowsCredentials Win32 API 사용법 정리
1826정성태12/11/201432744.NET Framework: 489. Socket.Listen에 전달된 backlog 인자의 의미 [6]
1825정성태12/11/201480605.NET Framework: 488. TCP 소켓 연결의 해제를 알 수 있는 방법 [10]파일 다운로드1
1824정성태12/10/201429710.NET Framework: 487. Socket.Receive 메서드의 SocketFlags.Peek 동작을 이용해 소켓 연결 유무를 확인? [8]파일 다운로드1
1823정성태12/10/201426938.NET Framework: 486. Java의 ScheduledExecutorService에 대응하는 C#의 System.Threading.Timer [2]
1822정성태12/3/201428233개발 환경 구성: 252. Xamarin 라이선스 관리 [8]
... 121  122  123  124  125  126  127  128  129  130  131  [132]  133  134  135  ...