블로그 이미지
fiadot_old

칼퇴근을 위한 게임 서버 개발 방법론에 대한 심도있는 고찰 및 성찰을 위한 블로그!

Rss feed Tistory
Technical Article/펌 2005. 8. 30. 14:47

res파일의 어플정보(원본파일명 얻어오기 소스)

msdn : mk:@MSITStore:C:\Program%20Files\Microsoft%20Visual%20Studio\MSDN\2001JUL\1033\winui.chm::/hh/winui/finstlib_4bad.htm

http://www.codeguru.com/Cpp/W-P/win32/versioning/article.php/c4539/

[CODE] #pragma comment(lib, "Version.lib") #include <windows.h> //#include <winver.h> BOOL CFiaUpdateDlg::GetFileInfo(char *szFile) { DWORD dwLen, dwUseless; LPTSTR lpVI; // std::string companyName; CString companyName; UINT verMajor; dwLen = GetFileVersionInfoSize((LPTSTR)szFile, &dwUseless); if (dwLen==0) return 0; lpVI = (LPTSTR) GlobalAlloc(GPTR, dwLen); if (lpVI) { DWORD dwBufSize; VS_FIXEDFILEINFO* lpFFI; BOOL bRet = FALSE; WORD* langInfo; UINT cbLang; TCHAR tszVerStrName[128]; LPVOID lpt; UINT cbBufSize; GetFileVersionInfo((LPTSTR)szFile, NULL, dwLen, lpVI); if (VerQueryValue(lpVI, _T("\\"), (LPVOID *) &lpFFI, (UINT *) &dwBufSize)) { //We now have the VS_FIXEDFILEINFO in lpFFI verMajor = HIWORD(lpFFI->dwFileVersionMS); } //Get the Company Name. //First, to get string information, we need to get //language information. VerQueryValue(lpVI, _T("\\VarFileInfo\\Translation"), (LPVOID*)&langInfo, &cbLang); //Prepare the label -- default lang is bytes 0 & 1 //of langInfo wsprintf(tszVerStrName, _T("\\StringFileInfo\\%04x%04x\\%s"), langInfo[0], langInfo[1], _T("OriginalFilename")); //Get the string from the resource data if ( VerQueryValue(lpVI, tszVerStrName, &lpt, &cbBufSize) ) // companyName.assign((LPTSTR)lpt); //*must* save this companyName.Format("%s", lpt); //Cleanup GlobalFree((HGLOBAL)lpVI); } return 1; }[/CODE]

스트링들
Comments
InternalName
ProductName
CompanyName
LegalCopyright
ProductVersion
FileDescription
LegalTrademarks
PrivateBuild
FileVersion
OriginalFilename
SpecialBuild
,
TOTAL TODAY