15,472
社区成员
发帖
与我相关
我的任务
分享
VS_FIXEDFILEINFO *rootBlock;
UINT valLen = MAX_PATH;
LPVOID valPtr = NULL;
if (VerQueryValue(lpBlock, L"\\", &valPtr, &valLen))
{
DWORD dValue = 0;
char *FileVersion = new char[MAX_PATH];
std::string temp;
memset(FileVersion, 0, MAX_PATH);
rootBlock = (VS_FIXEDFILEINFO*)valPtr;
dValue = rootBlock->dwFileVersionMS >> 16;
itoa(dValue, FileVersion + strlen(FileVersion), 10);
*(FileVersion + strlen(FileVersion)) = '.';
dValue = (rootBlock->dwFileVersionMS) & 0xffff;
itoa(dValue, FileVersion + strlen(FileVersion), 10);
*(FileVersion + strlen(FileVersion)) = '.';
dValue =(rootBlock->dwFileVersionLS >> 16);
itoa(dValue, FileVersion + strlen(FileVersion), 10);
*(FileVersion + strlen(FileVersion)) = '.';
dValue = (rootBlock->dwFileVersionLS) & 0xffff;
itoa(dValue, FileVersion + strlen(FileVersion), 10);
temp = FileVersion;
int nLen = (int)temp.length();
m_strFileVersion.resize(nLen, L' ');
MultiByteToWideChar(CP_ACP, 0, (LPCSTR)temp.c_str(), nLen, (LPWSTR)m_strFileVersion.c_str(), nLen);
delete []FileVersion;
FileVersion = nullptr;
}