Здравствуйте, 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?