Версия exe или dll файла
От: Аноним  
Дата: 14.04.04 11:58
Оценка:
Есть ли какая-нибудь апишная функция чтобы из ехе-шника вытащить версию?
Re: Версия exe или dll файла
От: butcher Россия http://bu7cher.blogspot.com
Дата: 14.04.04 12:03
Оценка:
Здравствуйте, .

Вы писали 14 апреля 2004 г., 15:58:19:

> Есть ли какая-нибудь апишная функция чтобы из ехе-шника вытащить версию?


GetVersionEx

--
С уважением, butcher
Posted via RSDN NNTP Server 1.8 beta

Нет ничего невозможного..
Re[2]: Версия exe или dll файла
От: Аноним  
Дата: 14.04.04 12:05
Оценка:
GetVersionEx это версия операционной системы
а нужно вытащить версию любого экзешника которая у него в ресурсах зашита
Re: Версия exe или dll файла
От: SergH Россия  
Дата: 14.04.04 12:06
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Есть ли какая-нибудь апишная функция чтобы из ехе-шника вытащить версию?


GetFileVersionInfo и её друзья
Делай что должно, и будь что будет
Re: Версия exe или dll файла
От: LeOnIdX Россия  
Дата: 14.04.04 12:08
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Есть ли какая-нибудь апишная функция чтобы из ехе-шника вытащить версию?


Моно сделать так
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Method name:  GetModuleVerStr  
// Effect:          method retrieves string with version of module
// Return:          string with version if success, empty string otherwise    
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
string GetNoduleVerStr( const TCHAR* pszModule )throw()  // [in] - path for module
{
    if( !pszModule )
        return _T("");

    HANDLE hTmpHandle = 0;
    DWORD dwVerInfoSize = ::GetFileVersionInfoSize( const_cast<TCHAR*>(pszModule), 
                                                                    (LPDWORD)&hTmpHandle );
    if( !dwVerInfoSize )
        return _T("");

    PVOID pVerInfoBlock = new BYTE[dwVerInfoSize];
    if( !pVerInfoBlock )
        return _T("");
    
    if( !::GetFileVersionInfo( const_cast<TCHAR*>(pszModule), 
                                        (DWORD)hTmpHandle, 
                                        dwVerInfoSize, 
                                        pVerInfoBlock ) )
    {
        delete [](PBYTE)pVerInfoBlock;
        return _T("");
    }

    // get version info
    VS_FIXEDFILEINFO* pVer = 0;
    UINT uTmp = 0;
    if( !VerQueryValue( pVerInfoBlock, _T("\\"), (void**)(&pVer), &uTmp ) )
    {
        if( pVerInfoBlock )
            delete [](PBYTE)pVerInfoBlock;
        return _T("");
    }
    
    ostrstream ost;

    // formatting string with version
    ost << (pVer->dwFileVersionMS >> 16) << _T(".") << (pVer->dwFileVersionMS & 0xFFFF) << _T(".");
    ost << (pVer->dwFileVersionLS >> 16) << _T(".") << (pVer->dwFileVersionLS & 0xFFFF);
    
    delete [](PBYTE)pVerInfoBlock;
    return ost.str();
}
Re[3]: Версия exe или dll файла
От: butcher Россия http://bu7cher.blogspot.com
Дата: 14.04.04 12:09
Оценка:
Здравствуйте, .

Вы писали 14 апреля 2004 г., 16:05:56:

> GetVersionEx это версия операционной системы

> а нужно вытащить версию любого экзешника которая у него в ресурсах зашита

поспешил
GetFileVersionInfo

--
С уважением, butcher
Posted via RSDN NNTP Server 1.8 beta

Нет ничего невозможного..
Re: Версия exe или dll файла
От: SWW Россия  
Дата: 15.04.04 05:24
Оценка:
А>Есть ли какая-нибудь апишная функция чтобы из ехе-шника вытащить версию?

здесь
Автор: SWW
Дата: 07.10.03
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.