C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[4693] Re:[질문]버전 정보 읽기
임승균.조로 [zoro] 3476 읽음    2000-12-28 00:00
안녕하세요~

제가 예전에 썼던 소스를 보여드리죠~ 아마 정우철님 책에서 보구 했을걸요..

이예제는 wininet.dll의 버전을 가져오는 예제입니다..
이외에도 파일 설명이나 제작사 그리고 주석등 을 가져올수 있습니다
VersionInfo 함수에 sQuery 인자에
Comments, InternalName, ProductName,CompanyName, LegalCopyright, ProductVersion,
FileDescription, LegalTrademarks, PrivateBuild, FileVersion,
OriginalFilename, SpecialBuild등을 넣어서 정보를 뽑아 오시면 되겠죠~~
저도 FileVersion 하고 FileDescrption정도 만 써봐서 나머지는 되는지 확인
못해봤어요~

필요하시면 밑에 VersionInfo 함수를 그냥 copy해서 쓰셔요..

AnsiString __fastcall VersionInfo(const AnsiString &sQuery)
{
  DWORD dwHandle = 0, dwVersionInfoSize;
  UINT uLength;
  LPVOID pFileInfo, ptr;
  AnsiString sOut; // 리턴될 버전 정보.

  // 버전을 알고 싶은 파일의 위치..
  AnsiString filename = "c:\\winnt\\system32\\wininet.dll";

  dwVersionInfoSize = GetFileVersionInfoSize(filename.c_str(), &dwHandle);

  pFileInfo = (LPVOID) HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, dwVersionInfoSize);

  GetFileVersionInfo(filename.c_str(), dwHandle, dwVersionInfoSize, pFileInfo);
  VerQueryValue(pFileInfo, TEXT("\\VarFileInfo\\Translation"), &ptr, &uLength);

  WORD *id = (WORD *) ptr;
  AnsiString szString = "\\StringFileInfo\\" + IntToHex(id[0], 4) + IntToHex(id[1], 4) + "\\" + sQuery;

  VerQueryValue(pFileInfo, szString.c_str(), &ptr, &uLength);
  sOut = AnsiString((char *) ptr);
  HeapFree(GetProcessHeap(), 0, pFileInfo );
  return sOut;
}

void __fastcall TForm1::Button1Click(TObject *Sender)
{
  Caption = VersionInfo("FileVersion");
}
//---------------------------------------------------------------------------

그럼 즐거운 하루 되세요~~

이영수 님이 쓰신 글 :
: 내가 만든 Dll에 버저정보를 저장한뒤..버전정보 읽는 법좀 알켜 주세요..!!
: 그럼 수고하세요.

+ -

관련 글 리스트
4690 [질문]버전 정보 읽기 이영수 2931 2000/12/28
4693     Re:[질문]버전 정보 읽기 임승균.조로 3476 2000/12/28
4700         [내용없음]도움주셔셔 정말 감사합니다. 도움 많이 됬습니다. 이영수 2803 2000/12/29
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.