programing

Windows 라이브러리(*.lib)의 내용을 표시하는 방법

elseif 2023. 4. 24. 22:34

Windows 라이브러리(*.lib)의 내용을 표시하는 방법

Windows 스태틱 라이브러리(*.lib)라는 바이너리 파일이 있습니다.
그 라이브러리에서 함수와 인터페이스의 이름을 찾을 수 있는 간단한 방법이 있나요?

비슷한 것emfar그리고.elfdump유틸리티(Linux 시스템)

정적 라이브러리라고 가정하면DUMPBIN /SYMBOLS에 라이브러리의 기능과 데이터 개체를 나타냅니다.Import Library에 대해 말하는 경우(a).libDLL에서 내보낸 기호를 참조하기 위해 사용됨)을 선택하면DUMPBIN /EXPORTS.

"C" 이진 인터페이스와 연결된 함수의 경우 값, 매개 변수 또는 호출 규칙을 반환하지 않습니다.이 정보는 암호화되어 있지 않습니다..lib올바르게 호출하려면 미리(예: 헤더 파일의 프로토타입을 통해) 알아야 합니다.

C++ 바이너리인터페이스에 링크된 함수의 경우 호출 규칙 및 인수는 내보낸 함수의 이름으로 인코딩됩니다('이름 망글링'이라고도 합니다). DUMPBIN /SYMBOLS는 디코딩된 파라미터 세트뿐만 아니라 "descled" 함수 이름을 모두 표시합니다.

Visual Studio 명령 프롬프트 열기

dumpbin /ARCHIVEMEMBERS openssl.x86.lib

또는

lib /LIST openssl.x86.lib

또는 7-zip으로 열기만 하면 됩니다. :) 이것은 AR 아카이브입니다.

저는 이런 도구를 원했습니다.ar t libfile.aunix 로 표시됩니다.
Windows에 상당하는 것은lib.exe /list libfile.lib.

"dllbin -dll"은 dll로 동작하지만 lib로 동작하지 않을 수 있습니다.lib에는 "dumpbin -linkermber" 또는 "dumpbin -linkermber:1"을 사용할 수 있습니다.

LIB.EXE는 VS의 라이브러리입니다.

http://msdn.microsoft.com/en-us/library/7ykb2k5f(VS.80).aspx

(Unix의 libtool 등)

DUMPBIN /EXPORTS 그 정보의 대부분을 취득하고 MSDN을 누르면 나머지가 취득됩니다.

Visual Studio 패키지 중 하나(C++)를 가져옵니다.

1) VS 2017 개발자 명령어프롬프트를 엽니다(또는 머신에 설치되어 있는 모든 버전). ([시작] 메뉴 --> 모든 프로그램 --> Visual Studio 2017 (또는 머신에 설치되어 있는 모든 버전) --> Visual Studio Tools --> VS 2017 개발자 명령어프롬프트를 엽니다).

2) 다음 명령을 입력합니다.

dumpbin /EXPORTS my_lib_name.lib

다른 답변에서 볼 수 있듯이 Visual Studio 버전에서 제공되는 개발자 명령 프롬프트를 열어야 사용할 수 있습니다.dumpbin.exe실행 경로에 있습니다.그렇지 않으면 필요한 환경 변수를 수동으로 설정할 수 있습니다.

dumpbin /EXPORTS yourlibrary.lib을 사용법대부분의 경우 라이브러리가 내보내는 기능이 표시되지 않습니다.

dumpbin /SYMBOLS /EXPORTS yourlibrary.lib.아마도 필터링을 해야 합니다. 아마도 파이프로findstr툴이 ) (MS-Windows 툴)grep

Static이러한 툴 중 하나를 사용하는 키워드가 좋은 힌트인 것 같습니다.

언급URL : https://stackoverflow.com/questions/305287/how-to-see-the-contents-of-windows-library-lib