Используете #defined values ​​в скриптах ресурсов диалогового окна Visual Studio? - PullRequest
2 голосов
/ 30 августа 2009

Я пытаюсь создать окно About для своего приложения Windows C ++. В Visual Studio 2008 я использую редактор диалогов, чтобы создать диалог. Я хочу, чтобы окно About отображало версию приложения в статической метке.

Я могу жестко запрограммировать версию в диалоговом окне, сохраненном в файле .rc, но тогда мне придется помнить об обновлении версии в нескольких местах.

Моя версия приложения #define d в version.h как APPLICATION_VERSION. Редактор ресурсов можно убедить поставить

#include "version.h"

вверху файла .rc, поэтому у меня есть доступ к символу APPLICATION_VERSION.

Однако я не могу использовать этот символ в редакторе диалогов. Я могу отредактировать файл .rc вручную, заменив жестко закодированную строку версии символом APPLICATION_VERSION. Это работает нормально, пока я снова не отредактирую диалог в редакторе диалогов: после сохранения .rc из редактора диалогов символ перезаписывается с его текущим значением.

Конечно, я могу установить метку версии на некоторый фиктивный текст, переопределяя этот текст, когда получаю WM_INITDIALOG, но это кажется очень неуклюжим и ненужным. Есть ли другой обходной путь, который позволяет мне хранить версию приложения в одном месте?

1 Ответ

0 голосов
/ 30 августа 2009

Я делаю это, помещая ресурс в отдельный файл с расширением .rc2 и #include в файл .rc (как вы делаете со своим version.h). Затем я редактирую файлы .rc2 с помощью обычного текстового редактора, а не редактора ресурсов Visual Studio.

Эта система не так уж плоха для ресурсов VERSIONINFO, для чего я ее и использую, но я вижу, что для диалоговых ресурсов это будет более болезненно. Мне бы хотелось услышать о лучшем способе, но я не знаю ни одного.

...