Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
knkd
37 / 36 / 2
Регистрация: 08.08.2010
Сообщений: 162
#1

Информация о исполняемом файле. - C++

16.09.2010, 21:16. Просмотров 583. Ответов 5
Метки нет (Все метки)

Как можно добавить в исполняемый файл (Win32) дополнительную информацию которую можно посмотреть в проводнике? Номер версии в часности.
Используемый компилятор - MinGW.

То что это возможно - гарантировано
Я компилировал исходники архиватора XZ и там эта информация есть.
Она там вводится в файлах с расширением *.rc, но там куча макросов и принцип действия мне непонятен.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.09.2010, 21:16     Информация о исполняемом файле.
Посмотрите здесь:

C++ Информация о файле
Информация о файле C++
C++ Консольное приложение. В файле находятся только целые числа. Определить, имеет ли последовательность чисел, находящихся в файле, нечетную длину
C++ Написать программу- вводная информация в файле in.txt, выходная информация в out.txt
C++ Сохранение информации в самом исполняемом файле
C++ Написать функцию, которая определяет, есть ли в файле информация
C++ Вызов функции в другом исполняемом файле
Сравнение слов в одном файле со словами в другом файле C++
C++ В файле хранится информация о бытовых приборах
Сохранение изменений в исполняемом файле, "самоизменяющийся" .exe файл C++
C++ Информация о файле

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
niXman
Эксперт C++
3134 / 1446 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
16.09.2010, 23:26     Информация о исполняемом файле. #2
Цитата Сообщение от knkd Посмотреть сообщение
Она там вводится в файлах с расширением *.rc
так это и в мингве делается.

Цитата Сообщение от knkd Посмотреть сообщение
но там куча макросов и принцип действия мне непонятен.
и что, ты ожидаешь что кто-то это сделает за тебя?
knkd
37 / 36 / 2
Регистрация: 08.08.2010
Сообщений: 162
16.09.2010, 23:36  [ТС]     Информация о исполняемом файле. #3
Цитата Сообщение от niXman Посмотреть сообщение
и что, ты ожидаешь что кто-то это сделает за тебя?
Я ожидаю чтоб мне хтонибуть сказал - в чём суть
То что определяем макросы с определёнными именами - понятно. Сделал только это - никаких изменений нет.
Что именно заставляет макросы превратиться в специальные поля файла?
Где копать хоть?

Поиском нашёл в MSDN, но там только: "Откройте VS2012, клацните на кнопку <Сделать Зашибись>..." и прочее
Так как ВижуалСтудии нет и не будет, то советы впрок не идут.
easybudda
Эксперт С++
9412 / 5435 / 917
Регистрация: 25.07.2009
Сообщений: 10,428
16.09.2010, 23:40     Информация о исполняемом файле. #4
Цитата Сообщение от niXman Посмотреть сообщение
так это и в мингве делается.
Мало того - это фишка ОС, а не отдельно взятого работающего под ней компилятора.

knkd, ищите в MSDN... Первое, что на ум приходит - вот тут тег description заполнить...
niXman
Эксперт C++
3134 / 1446 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
16.09.2010, 23:44     Информация о исполняемом файле. #5
.rc файл - это просто текстовый файл, который можно написать в нотпаде, и скомпилировать(в твоем случае) так:
 Комментарий модератора 
Публикация ссылок на сторонние форумы запрещена правилами форума (п. 3.7).
knkd
37 / 36 / 2
Регистрация: 08.08.2010
Сообщений: 162
17.09.2010, 00:01  [ТС]     Информация о исполняемом файле. #6
Цитата Сообщение от niXman Посмотреть сообщение
.rc файл - это просто текстовый файл, который можно написать в нотпаде, и скомпилировать(в твоем случае) так:
Что это текстовый файл, кагбе понятно.
Не понятна его структура и принцип образования.

Вот например файл из дистрибутива xz-4.999.9beta:
common_w32res.rc
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
/*
 * Author: Lasse Collin
 *
 * This file has been put into the public domain.
 * You can do whatever you want with this file.
 */
 
#include <winresrc.h>
#include "config.h"
#define LZMA_H_INTERNAL
#define LZMA_H_INTERNAL_RC
#include "lzma/version.h"
 
#ifndef MY_BUILD
# define MY_BUILD 0
#endif
#define MY_VERSION LZMA_VERSION_MAJOR,LZMA_VERSION_MINOR,LZMA_VERSION_PATCH,MY_BUILD
 
#define MY_FILENAME    MY_NAME MY_SUFFIX
#define MY_COMPANY     "Lasse Collin and Igor Pavlov"
#define MY_COPYRIGHT   "Public Domain by " MY_COMPANY
#define MY_COMMENTS    "http://tukaani.org/xz/"
 
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
VS_VERSION_INFO VERSIONINFO
  FILEVERSION MY_VERSION
  PRODUCTVERSION MY_VERSION
  FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
  FILEFLAGS 0
  FILEOS VOS_NT_WINDOWS32
  FILETYPE MY_TYPE
  FILESUBTYPE 0x0L
BEGIN
    BLOCK "StringFileInfo"
    BEGIN
        BLOCK "040904b0"
        BEGIN
            VALUE "Comments", MY_COMMENTS
            VALUE "CompanyName", MY_COMPANY
            VALUE "FileDescription", MY_DESC
            VALUE "FileVersion", LZMA_VERSION_STRING
            VALUE "InternalName", MY_NAME
            VALUE "LegalCopyright", MY_COPYRIGHT
            VALUE "OriginalFilename", MY_FILENAME
            VALUE "ProductName", PACKAGE_NAME
            VALUE "ProductVersion", LZMA_VERSION_STRING
        END
    END
    BLOCK "VarFileInfo"
    BEGIN
        VALUE "Translation", 0x409, 1200
    END
END


Проблема в том что он инклудится через несколько других файлов. И сам инклудит config.h в котором туева куча определений.

Если посмотреть в Makefile - получается что вся структура *.rc файлов скармливается GCC вместе с исходниками, без какой либо предварительной компиляции windres или чем-то ещё.

В общем вся структура с этими ихними BEGIN-END и магическими числами, нифига не вызывает понимания.
Yandex
Объявления
17.09.2010, 00:01     Информация о исполняемом файле.
Ответ Создать тему
Опции темы

Текущее время: 18:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru