VERSIONINFO 리소스

버전 정보 리소스를 정의합니다. 리소스에는 해당 버전 번호, 의도한 운영 체제 및 원래 파일 이름과 같은 파일에 대한 정보가 포함됩니다. 리소스는 버전 정보 함수와 함께 사용됩니다.

VERSIONINFO 문의 형식을 지정하는 방법에는 두 가지가 있습니다.

versionID VERSIONINFO fixed-info  { block-statement . . . }

-또는-

versionID VERSIONINFO 
fixed-info
BEGIN
block-statement
. . .
END

매개 변수

versionID

버전 정보 리소스 식별자입니다. 이 값은 1이어야 합니다.

fixed-info

파일 버전 및 의도한 운영 체제와 같은 버전 정보입니다. 이 매개 변수는 다음 문으로 구성됩니다.

설명
FILEVERSION버전 파일의 이진 버전 번호입니다. 버전은 4개의 16비트 정수로 정의된 두 개의 32비트 정수로 구성됩니다. 예를 들어 "FILEVERSION 3,10,0,61"은 0x0003000a 및 0x0000003d 두 개의 이중 단어로 변환됩니다. 따라서 버전DWORDdw1dw2로 정의된 경우 FILEVERSION 문에 , HIWORD(dw1), LOWORD(dw1), HIWORD(dw2)LOWORD(dw2)와 같이 나타나야 합니다.
PRODUCTVERSION버전 파일이 배포되는 제품의 이진 버전 번호입니다. 버전 매개 변수는 4개의 16비트 정수로 정의된 두 개의 32비트 정수입니다. 버전에 대한 자세한 내용은 FILEVERSION 설명을 참조하세요.
FILEFLAGSMASKfileflagsmask FILEFLAGS 문의 유효한 비트를 나타냅니다. 16비트 Windows의 경우 이 값은 0x3f.
FILEFLAGSfileflags 파일의 특성입니다.
FILEOS파일로 이 파일이 디자인된 운영 체제입니다. fileos 매개 변수는 설명 섹션에 제공된 운영 체제 값 중 하나일 수 있습니다.
FILETYPE파일 형식 파일의 일반 형식입니다. filetype 매개 변수는 설명 섹션에 나열된 파일 형식 값 중 하나일 수 있습니다.
FILESUBTYPE하위 형식 파일의 함수입니다. FILETYPE 문의 filetype 매개 변수가 VFT_DRV, VFT_FONT 또는 VFT_VXD 않는 한 하위 형식 매개 변수는 0입니다. 파일 하위 형식 값 목록은 설명 섹션을 참조하세요.

 

block-statement

하나 이상의 버전 정보 블록을 지정합니다. 블록에는 문자열 정보 또는 변수 정보가 포함될 수 있습니다. 자세한 내용은 StringFileInfo 블록 또는 VarFileInfo 블록을 참조하세요.

설명

VERSIONINFO 문과 함께 지정된 상수를 사용하려면 리소스 정의 파일에 Winver.h 또는 Windows.h 헤더 파일을 포함해야 합니다.

다음 목록에서는 VERSIONINFO 문에 사용되는 매개 변수에 대해 설명합니다.

fileflags

다음 값의 조합입니다.

Description
VS_FF_DEBUG 파일에는 디버깅 정보가 포함되거나 디버깅 기능이 사용하도록 설정된 상태로 컴파일됩니다.
VS_FF_PATCHED 파일이 수정되었으며 동일한 버전 번호의 원래 배송 파일과 동일하지 않습니다.
VS_FF_PRERELEASE 파일은 상업적으로 릴리스된 제품이 아닌 개발 버전입니다.
VS_FF_PRIVATEBUILD 파일이 표준 릴리스 프로시저를 사용하여 빌드되지 않았습니다. 이 값이 지정되면 StringFileInfo 블록PrivateBuild 문자열이 포함되어야 합니다.
VS_FF_SPECIALBUILD 파일은 표준 릴리스 절차를 사용하여 원래 회사에서 빌드되었지만 동일한 버전 번호의 표준 파일 변형입니다. 이 값이 지정되면 StringFileInfo 블록 블록SpecialBuild 문자열이 포함되어야 합니다.
VS_FFI_FILEFLAGSMASK 앞의 모든 값의 조합입니다.

 

fileos

다음 값 중의 하나입니다.

설명
VOS_UNKNOWN 파일을 디자인한 운영 체제를 알 수 없습니다.
VOS_DOS 파일은 MS-DOS용으로 설계되었습니다.
VOS_NT 파일은 32비트 Windows용으로 설계되었습니다.
VOS__WINDOWS16 파일은 16비트 Windows용으로 설계되었습니다.
VOS__WINDOWS32 파일은 32비트 Windows용으로 설계되었습니다.
VOS_DOS_WINDOWS16 파일은 MS-DOS로 실행되는 16비트 Windows용으로 설계되었습니다.
VOS_DOS_WINDOWS32 파일은 MS-DOS를 사용하여 실행되는 32비트 Windows용으로 설계되었습니다.
VOS_NT_WINDOWS32 파일은 32비트 Windows용으로 설계되었습니다.

 

값 0x000002L, 0x00003L, 0x20000L 및 0x30000L은 예약되어 있습니다.

Filetype

다음 값 중의 하나입니다.

Description
VFT_UNKNOWN 파일 형식을 알 수 없습니다.
VFT_APP 파일에는 애플리케이션이 포함되어 있습니다.
VFT_DLL 파일에는 DLL(동적 연결 라이브러리)이 포함되어 있습니다.
VFT_DRV 파일에는 디바이스 드라이버가 포함되어 있습니다. filetypeVFT_DRV경우 하위 형식에는 드라이버에 대한 보다 구체적인 설명이 포함됩니다.
VFT_FONT 파일에 글꼴이 포함되어 있습니다. filetype이 VFT_FONT 경우 하위 형식에는 글꼴에 대한 보다 구체적인 설명이 포함됩니다.
VFT_VXD 파일에는 가상 디바이스가 포함되어 있습니다.
VFT_STATIC_LIB 파일에는 정적 링크 라이브러리가 포함되어 있습니다.

 

다른 모든 값은 Microsoft에서 사용하도록 예약되어 있습니다.

하위

파일 형식에 대한 추가 정보입니다.

filetypeVFT_DRV 지정하는 경우 이 매개 변수는 다음 값 중 하나일 수 있습니다.

설명
VFT2_UNKNOWN 드라이버 유형을 알 수 없습니다.
VFT2_DRV_COMM 파일에는 통신 드라이버가 포함되어 있습니다.
VFT2_DRV_PRINTER 파일에 프린터 드라이버가 포함되어 있습니다.
VFT2_DRV_KEYBOARD 파일에는 키보드 드라이버가 포함되어 있습니다.
VFT2_DRV_LANGUAGE 파일에는 언어 드라이버가 포함되어 있습니다.
VFT2_DRV_DISPLAY 파일에는 디스플레이 드라이버가 포함되어 있습니다.
VFT2_DRV_MOUSE 파일에 마우스 드라이버가 포함되어 있습니다.
VFT2_DRV_NETWORK 파일에 네트워크 드라이버가 포함되어 있습니다.
VFT2_DRV_SYSTEM 파일에는 시스템 드라이버가 포함되어 있습니다.
VFT2_DRV_INSTALLABLE 파일에 설치 가능한 드라이버가 포함되어 있습니다.
VFT2_DRV_SOUND 파일에 사운드 드라이버가 포함되어 있습니다.
VFT2_DRV_VERSIONED_PRINTER 파일에 버전이 지정된 프린터 드라이버가 포함되어 있습니다.

 

filetypeVFT_FONT 지정하는 경우 이 매개 변수는 다음 값 중 하나일 수 있습니다.

Description
VFT2_UNKNOWN 글꼴 유형을 알 수 없습니다.
VFT2_FONT_RASTER 파일에 래스터 글꼴이 포함되어 있습니다.
VFT2_FONT_VECTOR 파일에는 벡터 글꼴이 포함되어 있습니다.
VFT2_FONT_TRUETYPE 파일에 TrueType 글꼴이 포함되어 있습니다.

 

filetype이 VFT_VXD 지정하는 경우 이 매개 변수는 가상 디바이스 제어 블록에 포함된 가상 디바이스 식별자여야 합니다.

여기에 나열되지 않은 모든 하위 형식 값은 Microsoft에서 사용하도록 예약되어 있습니다.

Langid

다음 언어 코드 중 하나입니다.

코드 언어 코드 언어
0x0401 아랍어 0x0415 폴란드어
0x0402 불가리아어 0x0416 포르투갈어(브라질)
0x0403 카탈로니아어 0x0417 Rhaeto-Romanic
0x0404 중국어 번체 0x0418 루마니아어
0x0405 체코어 0x0419 러시아어
0x0406 덴마크어 0x041A Croato-Serbian(라틴 문자)
0x0407 독일어 0x041B 슬로바키아어
0x0408 그리스어 0x041C 알바니아어
0x0409 미국 영어 0x041D 스웨덴어
0x040a 카스티야어 스페인어 0x041E 태국어
0x040B 핀란드어 0x041F 터키어
0x040C 프랑스어 0x0420 우르두어
0x040D 히브리어 0x0421 바하사 주
0x040E 헝가리어 0x0804 중국어(간체)
0x040F 아이슬란드어 0x0807 스위스 독일어
0x0410 이탈리아어 0x0809 영국 영어
0x0411 일본어 0x080A 스페인어(멕시코)
0x0412 한국어 0x080C 벨기에 프랑스어
0x0413 네덜란드어 0x0C0C 캐나다 프랑스어
0x0414 노르웨이어? 복말 0x100C 스위스 프랑스어
0x0810 스위스 이탈리아어 0x0816 포르투갈어(포르투갈)
0x0813 벨기에 네덜란드어 0x081A Serbo-Croatian(키릴 자모)
0x0814 노르웨이어? 니노르스크

 

charsetID

다음 문자 집합 식별자 중 하나입니다.

Decimal 16진수 문자 집합
0 0000 7비트 ASCII
932 03A4 일본(Shift? JIS X-0208)
949 03B5 한국(시프트? KSC 5601)
950 03B6 대만(Big5)
1200 04B0 Unicode
1250 04E2 라틴어-2(동유럽)
1251 04E3 키릴 자모
1252 04E4 다국어
1253 04E5 그리스어
1254 04E6 터키어
1255 04E7 히브리어
1256 04E8 아랍어

 

string-name

다음 미리 정의된 이름 중 하나입니다.

속성 설명
설명 진단을 위해 표시해야 하는 추가 정보입니다.
CompanyName 예를 들어 Microsoft Corporation 파일을 생성한 회사이거나 Standard Microsystems Corporation, Inc. 이 문자열이 필요합니다.
FileDescription 사용자에게 표시할 파일 설명입니다. 이 문자열은 사용자가 설치할 파일을 선택할 때 목록 상자에 표시될 수 있습니다(예 Keyboard Driver for AT-Style Keyboards: ). 이 문자열은 필수입니다.
FileVersion 파일의 버전 번호(예 3.10 : 또는 5.00.RC2)입니다. 이 문자열은 필수입니다.
InternalName 파일이 있는 경우 파일의 내부 이름(예: 파일이 동적 연결 라이브러리인 경우 모듈 이름)입니다. 파일에 내부 이름이 없는 경우 이 문자열은 확장명 없이 원래 파일 이름이어야 합니다. 이 문자열은 필수입니다.
LegalCopyright 파일에 적용되는 저작권 알림입니다. 여기에는 모든 통지, 법적 기호, 저작권 날짜 등의 전체 텍스트가 포함되어야 합니다. 이 문자열은 선택 사항입니다.
LegalTrademarks 파일에 적용되는 상표 및 등록 상표입니다. 여기에는 모든 유의 사항, 법적 기호, 상표 번호 등에 대한 전체 내용이 포함됩니다. 이 문자열은 선택 사항입니다.
OriginalFilename 경로가 포함되지 않은 파일의 원래 이름입니다. 이 정보를 사용하면 애플리케이션에서 사용자가 파일 이름을 바꾸었는지 여부를 확인할 수 있습니다. 이름의 형식은 파일이 만들어진 파일 시스템에 따라 달라집니다. 이 문자열은 필수입니다.
PrivateBuild 파일의 프라이빗 버전에 대한 정보(예: Built by TESTER1 on \\TESTBED). 이 문자열은 루트 블록의 fileflags 매개 변수에 VS_FF_PRIVATEBUILD 지정된 경우에만 존재해야 합니다.
ProductName 파일이 배포되는 제품의 이름입니다. 이 문자열은 필수입니다.
ProductVersion 파일이 배포되는 제품의 버전(예 3.10 : 또는 5.00.RC2)입니다. 이 문자열은 필수입니다.
SpecialBuild 파일의 이 버전이 표준 버전과 어떻게 다른지 지정하는 텍스트(예 Private build for TESTER1 solving mouse problems on M250 and M250E computers: ). 이 문자열은 루트 블록의 fileflags 매개 변수에 VS_FF_SPECIALBUILD 지정된 경우에만 존재해야 합니다.

 

이전 버전과의 호환성을 위해 특정 특성도 지원됩니다. 자세한 내용은 일반 리소스 특성을 참조하세요.

예제

다음 예제에서는 VERSIONINFO 리소스를 정의합니다.

#define VER_FILEVERSION             3,10,349,0
#define VER_FILEVERSION_STR         "3.10.349.0\0"

#define VER_PRODUCTVERSION          3,10,0,0
#define VER_PRODUCTVERSION_STR      "3.10\0"

#ifndef DEBUG
#define VER_DEBUG                   0
#else
#define VER_DEBUG                   VS_FF_DEBUG
#endif

VS_VERSION_INFO VERSIONINFO
FILEVERSION     VER_FILEVERSION
PRODUCTVERSION  VER_PRODUCTVERSION
FILEFLAGSMASK   VS_FFI_FILEFLAGSMASK
FILEFLAGS       (VER_PRIVATEBUILD|VER_PRERELEASE|VER_DEBUG)
FILEOS          VOS__WINDOWS32
FILETYPE        VFT_DLL
FILESUBTYPE     VFT2_UNKNOWN
BEGIN
    BLOCK "StringFileInfo"
    BEGIN
        BLOCK "040904E4"
        BEGIN
            VALUE "CompanyName",      VER_COMPANYNAME_STR
            VALUE "FileDescription",  VER_FILEDESCRIPTION_STR
            VALUE "FileVersion",      VER_FILEVERSION_STR
            VALUE "InternalName",     VER_INTERNALNAME_STR
            VALUE "LegalCopyright",   VER_LEGALCOPYRIGHT_STR
            VALUE "LegalTrademarks1", VER_LEGALTRADEMARKS1_STR
            VALUE "LegalTrademarks2", VER_LEGALTRADEMARKS2_STR
            VALUE "OriginalFilename", VER_ORIGINALFILENAME_STR
            VALUE "ProductName",      VER_PRODUCTNAME_STR
            VALUE "ProductVersion",   VER_PRODUCTVERSION_STR
        END
    END

    BLOCK "VarFileInfo"
    BEGIN
        /* The following line should only be modified for localized versions.     */
        /* It consists of any number of WORD,WORD pairs, with each pair           */
        /* describing a language,codepage combination supported by the file.      */
        /*                                                                        */
        /* For example, a file might have values "0x409,1252" indicating that it  */
        /* supports English language (0x409) in the Windows ANSI codepage (1252). */

        VALUE "Translation", 0x409, 1252

    END
END

추가 정보

버전 정보 사용

버전 정보