char szFullPath[MAX_PATH];
DWORD dwVerInfoSize = 0;
DWORD dwVerHnd;
VS_FIXEDFILEINFO * pFileInfo; GetModuleFileName(GetDllInstance(), szFullPath, sizeof(szFullPath));
dwVerInfoSize = GetFileVersionInfoSize(szFullPath, &dwVerHnd);
if (dwVerInfoSize)
{
// If we were able to get the information, process it:
HANDLE hMem;
LPVOID lpvMem;
unsigned int uInfoSize = 0; hMem = GlobalAlloc(GMEM_MOVEABLE, dwVerInfoSize);
lpvMem = GlobalLock(hMem);
GetFileVersionInfo(szFullPath, dwVerHnd, dwVerInfoSize, lpvMem);
::VerQueryValue(lpvMem, (LPTSTR)_T("\\"), (void**)&pFileInfo, &uInfoSize); int nVer0 = HIWORD(pFileInfo->dwProductVersionMS);
int nVer1 = LOWORD(pFileInfo->dwProductVersionMS);
int nVer2 = HIWORD(pFileInfo->dwProductVersionLS);
int nVer3 = LOWORD(pFileInfo->dwProductVersionLS); char strVersion[50];
memset(strVersion, 0, sizeof(strVersion));
sprintf(strVersion, "%d.%d.%d.%d", nVer0, nVer1, nVer2, nVer3); GlobalUnlock(hMem);
GlobalFree(hMem);
}
DWORD dwVerInfoSize = 0;
DWORD dwVerHnd;
VS_FIXEDFILEINFO * pFileInfo; GetModuleFileName(GetDllInstance(), szFullPath, sizeof(szFullPath));
dwVerInfoSize = GetFileVersionInfoSize(szFullPath, &dwVerHnd);
if (dwVerInfoSize)
{
// If we were able to get the information, process it:
HANDLE hMem;
LPVOID lpvMem;
unsigned int uInfoSize = 0; hMem = GlobalAlloc(GMEM_MOVEABLE, dwVerInfoSize);
lpvMem = GlobalLock(hMem);
GetFileVersionInfo(szFullPath, dwVerHnd, dwVerInfoSize, lpvMem);
::VerQueryValue(lpvMem, (LPTSTR)_T("\\"), (void**)&pFileInfo, &uInfoSize); int nVer0 = HIWORD(pFileInfo->dwProductVersionMS);
int nVer1 = LOWORD(pFileInfo->dwProductVersionMS);
int nVer2 = HIWORD(pFileInfo->dwProductVersionLS);
int nVer3 = LOWORD(pFileInfo->dwProductVersionLS); char strVersion[50];
memset(strVersion, 0, sizeof(strVersion));
sprintf(strVersion, "%d.%d.%d.%d", nVer0, nVer1, nVer2, nVer3); GlobalUnlock(hMem);
GlobalFree(hMem);
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货