> 백엔드 개발 > C++ > DLL 및 EXE에 대한 버전 정보를 프로그래밍 방식으로 얻는 방법은 무엇입니까?

DLL 및 EXE에 대한 버전 정보를 프로그래밍 방식으로 얻는 방법은 무엇입니까?

Susan Sarandon
풀어 주다: 2024-10-29 14:17:02
원래의
472명이 탐색했습니다.

How to Programmatically Get Version Information for DLLs and EXEs?

DLL 및 EXE에 대한 버전 정보를 프로그래밍 방식으로 얻는 방법

소프트웨어 개발 영역에서는 동적 링크 라이브러리( DLL) 및 실행 가능한 프로그램(EXE). C 또는 C를 통해 액세스할 수 있는 Win32 기본 API를 활용함으로써 개발자는 이러한 실행 가능 엔터티의 제품 및 파일 버전을 원활하게 얻을 수 있습니다.

GetFileVersionInfo API: 버전 정보 잠금 해제

버전 정보 잠금 해제의 핵심 GetFileVersionInfo API에 있습니다. 이 강력한 기능은 지정된 DLL 또는 EXE 파일과 관련된 데이터로 버퍼를 채웁니다. 복잡한 사용법을 자세히 살펴보겠습니다.

  • 파일 크기 결정: GetFileVersionInfoSize는 필수 버퍼 크기를 제공하여 메모리 할당 최적화를 안내합니다.
  • 버전 데이터 검색: GetFileVersionInfo 권한 부여 버퍼 내에 안전하게 저장된 버전 정보에 액세스합니다.
  • 버퍼 쿼리: VerQueryValue는 사용자가 미리 정의한 기준과 일치하는 버전 데이터의 하위 집합을 추출합니다.
  • 버전 번호 해석: 기본 버전을 이해하여 버전 정보 구조를 통해 개발자는 dwFileVersionMS 및 dwFileVersionLS 값에서 점으로 구분된 네 부분으로 구성된 버전 번호(x.x.x.x)를 정확하게 구문 분석할 수 있습니다.

실제 버전 검색 예시

다음 코드 샘플은 GetFileVersionInfo API의 실제 적용을 보여줍니다.

<code class="python">DWORD verHandle = 0;
UINT size = 0;
LPBYTE lpBuffer = NULL;
DWORD verSize = GetFileVersionInfoSize(szVersionFile, &verHandle);

if (verSize != NULL) {
    LPSTR verData = new char[verSize];

    if (GetFileVersionInfo(szVersionFile, verHandle, verSize, verData)) {
        if (VerQueryValue(verData, "\", (VOID FAR * FAR *)&lpBuffer, &size)) {
            if (size) {
                VS_FIXEDFILEINFO *verInfo = (VS_FIXEDFILEINFO *)lpBuffer;
                if (verInfo->dwSignature == 0xfeef04bd) {
                    // Parse the file version into a four-part dotted string
                    TRACE("File Version: %d.%d.%d.%d\n",
                          (verInfo->dwFileVersionMS >> 16) & 0xffff,
                          (verInfo->dwFileVersionMS >>  0) & 0xffff,
                          (verInfo->dwFileVersionLS >> 16) & 0xffff,
                          (verInfo->dwFileVersionLS >>  0) & 0xffff
                          );
                }
            }
        }
    }
    delete[] verData;
}</code>
로그인 후 복사

결론적으로 GetFileVersionInfo API는 DLL 및 EXE에서 버전 정보를 프로그래밍 방식으로 얻기 위한 포괄적인 솔루션을 제공합니다. 개발자는 이 기능을 활용하여 버전 검색 작업을 자동화하여 소프트웨어 개발 노력의 정확성과 효율성을 보장할 수 있습니다.

위 내용은 DLL 및 EXE에 대한 버전 정보를 프로그래밍 방식으로 얻는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿