vc++에서 얻은 dll 버전 정보
1244 단어 VC/MFC
CString GetProductVersion(LPCTSTR lpszFileName)
{
CString strVersion;
TCHAR szSrcfn[MAX_PATH]; //
if(lpszFileName == NULL)
::GetModuleFileName(NULL, szSrcfn, sizeof(szSrcfn));
else
lstrcpy(szSrcfn, lpszFileName);
//
DWORD dwVerHnd = 0;
DWORD dwVerInfoSize = ::GetFileVersionInfoSize(szSrcfn, &dwVerHnd);
if(dwVerInfoSize)
{
HANDLE hMem;
LPVOID lpvMem;
unsigned int uInfoSize = 0;
VS_FIXEDFILEINFO * pFileInfo;
hMem = ::GlobalAlloc(GMEM_MOVEABLE, dwVerInfoSize);
lpvMem = ::GlobalLock(hMem);
::GetFileVersionInfo(szSrcfn, dwVerHnd, dwVerInfoSize, lpvMem);
::VerQueryValue(lpvMem, (LPTSTR)_T("\\"), (void**)&pFileInfo, &uInfoSize);
WORD nVer[4];
nVer[0] = HIWORD(pFileInfo->dwProductVersionMS);
nVer[1] = LOWORD(pFileInfo->dwProductVersionMS);
nVer[2] = HIWORD(pFileInfo->dwProductVersionLS);
nVer[3] = LOWORD(pFileInfo->dwProductVersionLS);
strVersion.Format(_T("%d.%d.%d.%d"), nVer[0], nVer[1],nVer[2],nVer[3]);
::GlobalUnlock(hMem);
::GlobalFree(hMem);
}
return strVersion;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
DLL 내부의 비모드 대화 상자의 PreTranslateMessage 함수가 실행되지 않습니다.MFC Regular DLL은 CWinApp 클래스를 파생시켰고 theApp 전역 대상이 하나 있다.그러나 CWinApp::Run 메커니즘이 포함되지 않으며, 메인 메시지는 exe가 접수하고 나누어 줍니다.DLL에서...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.