| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Visual C++/MFC/WTL > Как получить PruductVersion |
| Автор: knut 7.11.2006, 12:42 |
| Добрый день. У меня накой вопрос. Как програмно получить PruductVersion из VS_VERSION_INFO. Зараниее благодарен |
| Автор: Earnest 7.11.2006, 13:46 |
| см. GetFileVersionInfo Добавлено @ 13:49 А потом VerQueryValue |
| Автор: knut 7.11.2006, 15:39 |
| Earnest, а для класса CModuleVersion какой xедер надо инклуднуть?У меня VS 2005 и в мсдн я такого ласса не как ненашел. |
| Автор: Earnest 7.11.2006, 17:30 |
| А откуда ты его вообще взял? Я такого класса тоже не знаю... |
| Автор: knut 8.11.2006, 10:45 | ||
| Вот написла прогу выдаюшую product name проекта но она вылетает. дебагером прошелся выводет такие сообщения как "The variable "v1","v2","v3",''v4" is being used without being defined." [code=cpp] #pragma comment( lib, "version.lib" ) bool GetVersions(LPCWSTR FileName,DWORD dw1,DWORD dw2,DWORD dw3,DWORD dw4) { DWORD pHandle; bool res = false; if(DWORD BuffVer = GetFileVersionInfoSize(FileName,&pHandle)) { LPBYTE Buffer = new BYTE[BuffVer]; VS_FIXEDFILEINFO *pi = 0; if(GetFileVersionInfo(FileName,pHandle,BuffVer,Buffer)) { UINT dwLen; if(VerQueryValue(&pi,_TEXT("\\"),(void**)&Buffer,&dwLen )) { DWORD V1 = pi->dwFileVersionLS; DWORD V2 = pi->dwFileVersionMS; dw1 = HIWORD(V1); dw2 = LOWORD(V1); dw3 = HIWORD(V2); dw4 = LOWORD(V2); res = true; } } delete[] Buffer; Buffer = NULL; } return res; }[code=cpp] main cpp
|
| Автор: Pulse69 8.11.2006, 11:50 | ||||
Хоть бы параметры в GetVersions по ссылке передавал что-ли...
|