Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> получене версии ехе файла 
:(
    Опции темы
knut
Дата 18.10.2007, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 588
Регистрация: 7.2.2006

Репутация: нет
Всего: нет



надо получить с ресурсов версию ехе файла.
в ресурсы добовляю VS_VERSION_INFO. и надо прочитать версию ехе.
делаю след.
Код



wchar_t *My_Path = new wchar_t[1024];
GetModuleFileName(NULL,(LPWSTR)My_Path,1024);
DWORD v1,v2,v3,v4;
GetVersions((LPWSTR)My_Path,v1,v2,v3,v4);
delete []My_Path;
My_Path = NULL;


и собственно функц. релиз.
Код



bool GetVersions(LPWSTR FileName,DWORD &dw1,DWORD &dw2,DWORD &dw3,DWORD &dw4)
{

    bool res = false;
    DWORD dw;
    DWORD d_Size;
    DWORD Handle;
    if(d_Size = GetFileVersionInfoSize(FileName,&Handle))
    {
            BYTE *Ver = new BYTE[d_Size];
            if(GetFileVersionInfo(FileName,Handle,d_Size,&Ver))
            {
                VS_FIXEDFILEINFO *Version_Info;
                UINT  d_Len;
                DWORD v1,v2,v3,v4;
        if(VerQueryValue(Ver,_T("\\"),(void**)&Version_Info,&d_Len))
                {
                
        DWORD V1 = Version_Info->dwProductVersionMS;
        DWORD V2 = Version_Info->dwProductVersionLS;

                    v1 = HIWORD(V1);
                    v2 = LOWORD(V2);
                    v3 = HIWORD(V2);
                    v4 = LOWORD(V1);

                    res = true;

                }
            }
            delete[]Ver;
            Ver = NULL;

    }
    dw = GetLastError();
    return res;

}



но в if(GetFileVersionInfoSize) незаходет.
и гетластеррор возврошает 1814. что 
ERROR_RESOURCE_NAME_NOT_FOUND
????
в чем дело? 


--------------------
Цитата

Многие вещи нам непонятны не оттого, что наши понятия слабы, а оттого, что данные вещи не входят в круг наших понятий.
PM MAIL   Вверх
NiJazz
Дата 18.10.2007, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Jazz coder
****


Профиль
Группа: Экс. модератор
Сообщений: 2286
Регистрация: 10.8.2003
Где: Москва

Репутация: 6
Всего: 23



FindResource
EnumResourceNames
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.1125 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.