Re[4]: Извлечение Информации из exe файлов
От: Robo.Burned  
Дата: 20.06.07 05:56
Оценка:
Здравствуйте, Alex Kirhenshtein, Вы писали:


AK>Примерно так:


AK>
AK>#include <stdio.h>
AK>#include <windows.h>

AK>typedef struct t_L
AK>{
AK>    WORD wLanguage;
AK>    WORD wCodePage;    
AK>} L;

AK>int wmain(int argc, wchar_t *argv[])
AK>{
AK>    DWORD size;
AK>    void *buff;
AK>    int verSize, productNameSize, i;
AK>    wchar_t tmp[1024], *productName;
AK>    L *verTrans;

AK>    size = GetFileVersionInfoSize(argv[1], NULL);
AK>    if (size > 0) {
AK>        buff = malloc(size);
AK>        if (buff != NULL)
AK>        {
AK>            if (GetFileVersionInfo(argv[1], 0, size, buff) != 0)
AK>            {
AK>                if (VerQueryValue(buff, L"\\VarFileInfo\\Translation",
AK>                    (LPVOID*)&verTrans, &verSize))
AK>                {
AK>                    for (i = 0; i < verSize / sizeof(L); i++)
AK>                    {
AK>                        wprintf(L"Found translation: lang=%d, cp=%d\n",
AK>                            verTrans[i].wLanguage,
AK>                            verTrans[i].wCodePage);
AK>                        swprintf(tmp, 1024, L"\\StringFileInfo\\%04x%04x\\ProductName",
AK>                            verTrans[i].wLanguage,
AK>                            verTrans[i].wCodePage);
AK>                        if (VerQueryValue(buff, tmp, &productName, &productNameSize))
AK>                        {
AK>                            wprintf(L"Product name: {%s}\n", productName);
AK>                        }
AK>                    }
AK>                }
AK>            }
AK>            free(buff);
AK>        }
AK>    }
    
AK>    return 0;
AK>}
AK>



Я так понял, что для использования GetFileVersionInfoSize нужно подключить библиотеку Ver.dll

Я пробовал так

#pragma comment(lib, "ver")

Программа компилируется без ошибок.
При запуске программы сообщение : Приложение C:\ ... \VER.dll не является образом программы для Windows NT Проверьте назначение установочного диска


Пробовал иначе:

в свойствах проекта Linker\Input\Additional dependencies писал ver.lib
Результат тот-же.

Может нужно искать Ver.dll под XP?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.