>백엔드 개발 >C++ >C/C에서 프로그래밍 방식으로 DLL 또는 EXE 파일의 버전을 얻는 방법은 무엇입니까?

C/C에서 프로그래밍 방식으로 DLL 또는 EXE 파일의 버전을 얻는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-10-30 19:57:021033검색

How to Programmatically Get the Version of a DLL or EXE File in C/C  ?

프로그래밍 방식으로 DLL 또는 EXE 파일 버전을 가져오는 방법

DLL 또는 EXE 파일의 제품 및 파일 버전을 가져오는 방법은 소프트웨어 개발의 중요한 측면. Win32 기본 API를 사용하여 C 또는 C에서 이 작업을 수행하려면 다음 단계를 따르세요.

  1. GetFileVersionInfo API를 활용하세요.

    이 함수는 다음에 대한 액세스를 제공합니다. 지정된 파일과 관련된 버전 정보.

  2. 구현 예:

    다음 코드는 GetFileVersionInfo API를 사용하여 버전 번호를 검색하는 방법을 보여줍니다. :

    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)
                    {
                        // DWORD is always 32 bits, so first two revision numbers
                        // come from dwFileVersionMS, last two come from dwFileVersionLS
                        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;
    }

GetFileVersionInfo API를 활용하면 DLL 또는 EXE 파일의 버전 정보를 효과적으로 검색하여 버전 확인 및 기타 관련 작업을 수행할 수 있습니다.

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.