About 다이얼로그 만드는 방법 1. GetFileVersionInfoSize 이용해서 버젼 정보 크기 얻는다. 2. 버젼 정보를 저장할 메모리를 할당한 후에 버젼 정보를 얻는다. MemHandle = GlobalAlloc(GMEM_MOVEABLE, VerSize); MemPtr = GlobalLock(MemHandle); GetFileVersionInfo(Path.c_str(), VerInfo, VerSize, MemPtr); 3. VerQueryValue(MemPtr, "\VarFileInfo\Translation", &BufferPtr,&BufferLength); 함수를 이용해서 각 정보를 얻는다. -실제 소스- 코드: struct TransArray { WORD LanguageID, CharacterSet; }; DWORD VerInfo, VerSize; HANDLE MemHandle; LPVOID MemPtr, BufferPtr; UINT BufferLength; TransArray *Array; char QueryBlock[40]; // Get the product name and version from the // applications version information. String Path(Application->ExeName); //프로그램 패스 얻어오기 VerSize = GetFileVersionInfoSize(Path.c_str(), &VerInfo);//버젼 정보 크기 얻어오기 if (VerSize > 0) { MemHandle = GlobalAlloc(GMEM_MOVEABLE, VerSize); MemPtr = GlobalLock(MemHandle); GetFileVersionInfo(Path.c_str(), VerInfo, VerSize, MemPtr); VerQueryValue(MemPtr, "\VarFileInfo\Translation", &BufferPtr, &BufferLength); Array = (TransArray *)BufferPtr; // Get the product name. wsprintf(QueryBlock, "\StringFileInfo\%04x%04x\ProductName", Array[0].LanguageID, Array[0].CharacterSet); VerQueryValue(MemPtr, QueryBlock, &BufferPtr, &BufferLength); // Set the product name caption. ProductName->Caption = (char *)BufferPtr; // Get the product version. wsprintf(QueryBlock, "\StringFileInfo\%04x%04x\ProductVersion", Array[0].LanguageID, Array[0].CharacterSet); VerQueryValue(MemPtr, QueryBlock, &BufferPtr, &BufferLength); // Set the version caption. Version->Caption = (char *)BufferPtr; GlobalUnlock(MemHandle); GlobalFree(MemHandle); } else { ProductName->Caption = ""; Version->Caption = ""; } Comments->Caption = "Thank you for trying this fabulous product.n" "We hope that you have enjoyed using it."; |
'Computer > C++' 카테고리의 다른 글
BCB 6에 Indy 10 설치 하기 관련... (4) | 2005.11.23 |
---|---|
BCB - StrToHex 함수 (1) | 2005.11.06 |
BCB 6에 DSPack 2.3.4 설치 (6) | 2005.09.10 |
카일릭스 설치 및 일반적인 문제점 (4) | 2005.07.10 |
void pointer 샘플 (2) | 2005.07.10 |
TStingList이용해서 텍스트 파일 파싱하기 (2) | 2003.11.16 |
Effective C++ Second Edition (139) | 2003.10.13 |
Child control 관리 (2) | 2003.09.15 |
C++ 사이트 모음 (139) | 2003.04.08 |
C와 C++의 name mangling (139) | 2003.03.04 |