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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ProductVersion проекта 
:(
    Опции темы
knut
Дата 8.11.2006, 15:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Добрый деень.
написал прогу каторая выдает productversion.Сделал длл проект productversion которого наго получить.

#pragma comment( lib, "knut.lib" ) //knut.lib это либа того длл проекта что я создал.и впиxнул его  прэкт каторый реализуюет задуманное.

  
В отдельном проекте реализуем задуманнае.
Код

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(Buffer,_TEXT("\\"),(void**)&pi,&dwLen))
        
            {
                DWORD V1 = pi->dwFileVersionLS;
                DWORD V2 = pi->dwFileVersionMS;
                dw1 = HIWORD(V2);
                dw2 = LOWORD(V2);
                dw3 = HIWORD(V1);
                dw4 = LOWORD(V1);
                res = true;

            }
        }
        delete[] Buffer;
        Buffer = NULL;
    }
    return res;
}[size=1][/size]


и маин
Код


        DWORD v1,v2,v3,v4;  
                    LPCSTR    PathToMyself = new char[1024]; 
        GetModuleFileName(NULL,(LPWSTR)PathToMyself,1024);   
        GetVersions((LPWSTR)PathToMyself,v1,v2,v3,v4);
        
        delete [] PathToMyself;   
        PathToMyself = NULL;    
        
        
     _tprintf(_T("%01.1d,%01.1d,%01.1d,%01.1d\n"),v1,v2,v3,v4);[size=1][/size]

но вот вроде все зделал ок но...... "всегда это но" не фига не работает а проблемма с pragma comment ом
erros .
error LNK2019: unresolved external symbol.
Заранее спасоб за внимание.



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

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


Эксперт
****


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

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



error LNK2019: unresolved external symbol - какой символ-то? Скорее всего, функции запроса версии. Библиотеку стало быть не подключил.


--------------------
...
PM   Вверх
knut
Дата 9.11.2006, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Earnest, 
Если мне надо получить resourseversion той проги в котором рабоарет проект все ок. а вот  если надо получить resourseversion уже другой проги(dll aplication) вот тогда наченаются мучения.
1.надо загрузит длл.
2.получить xендл модулья.
3.получить путь  и т.д
Вот сообсвенно и вопрос
Правелны ли мои мышление?и есть ли другой способ реализовать идею(т.е получить resourseversion любого проекта).
И еще вопрос вот в МСДН написанно что эти функц в Coredll.lib либе(или я не прав?) но они презноют только version.lib почему?
1.GetFileVersionInfo.
2.VerQueryValue 
Заранее Спасибоsmile


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

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


Эксперт
****


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

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



По-моему нет. Ты можешь получить версию любого исполняемого файла не загружая его.
Функция требует полное имя модуля и все дела. 
Естественно, version.lib нужно подключать к тому проекту, из которого ты собираешься эти функции вызывать. 


--------------------
...
PM   Вверх
knut
Дата 11.11.2006, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



какую либу надо вклучить в прагму под wince что бы заработал выше указанный код.vesrsion.lib не работает.
Код

#pragma comment (lib, "???????.lib")

Спасибо


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

Многие вещи нам непонятны не оттого, что наши понятия слабы, а оттого, что данные вещи не входят в круг наших понятий.
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.1085 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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