Получение FILEVERSION из файла ресурсов Visual C ++ - PullRequest
8 голосов
/ 02 октября 2009

Какие ключевые слова препроцессора используются для доступа к FILEVERSION, определенному в моем файле .rc во время компиляции?

Я не хочу добавлять дополнительный код для чтения информации о файле из самого скомпилированного продукта.

Ответы [ 2 ]

8 голосов
/ 02 октября 2009

Препроцессор также работает с файлом .RC. Определите общие данные в заголовке, который включен как .RC, так и вашим исходным кодом.

т.е. в foo.h:

#define MY_PRODUCT_NAME Foo

Тогда в foo.rc:

#include "foo.h"

VS_VERSION_INFO VERSIONINFO
   // Many lines omitted
   VALUE "ProductName", MY_PRODUCT_NAME

Тогда в foo.cpp:

#include "foo.h"

cout << MY_PRODUCT_NAME;
2 голосов
/ 02 марта 2012

Мое решение этой проблемы простое, хорошо работает и не стирается редактором ресурсов. 1. Переместите весь раздел VS_VERSION_INFO в ваш файл .RC2. 2. Замените все номера версий и строки значениями, которые вы #define используете в новом файле version.h. 3. Добавьте #include "version.h" в ваш файл .RC2. Теперь вы также можете включить version.h в другие файлы .CPP и использовать значения #define в своем коде, например, для отображения ресурсов версии приложения в диалоговом окне.

...