Ответ 1
Ханс Пассант почти все правильно. К сожалению, $(InputPath) и $(InputName) не определены в VS 2010. Вместо этого создайте файл сообщения:
- Щелкните правой кнопкой мыши на своем проекте- > Добавить- > Новый элемент
- Выберите "Текстовый файл (.txt), но назовите его как".mc "(например," messages.mc ")
- Создайте файл ресурсов (скажем, "resources.rc" )
- Отредактируйте файл ресурсов, чтобы он содержал только одну строку:
#include "messages.rc"
Этот файл будет сгенерирован компилятором сообщений. Теперь добавьте настраиваемый шаг сборки для запуска компилятора сообщений:
- Щелкните правой кнопкой мыши на message.mc и выберите "Свойства".
- В диалоговом окне "Свойства" выберите "Конфигурация".
- В разделе "Свойства конфигурации" нажмите "Общие".
- Убедитесь, что для свойства "Исключено из сборки" установлено значение "Нет".
- Задайте для свойства "Тип элемента" значение "Custom Build Tool" в раскрывающемся меню и нажмите кнопку "Применить", чтобы появилось свойство "Custom Build Tool".
- Нажмите "General" в разделе "Свойство Custom Build Tool".
-
Задайте свойство "Командная строка":
mc% (FullPath)
-
Установите для свойства Description что-то вроде "Компиляция сообщений..."
- Задайте свойство Outputs:
% (файл).rc;% (файл).h; MSG0409.bin
Файл MSG00409.bin имеет следующую строку в messages.mc:
ЯзыкNames = (английский = 0x409: MSG00409)
Может быть файл bin для каждого языка, который вы добавляете в messages.mc. Хорошая часть их перечисления на выходе состоит в том, что он будет удален при очистке проекта.
Единственное, о чем я не уверен, это установить свойство "Выполнить до", чтобы гарантировать, что messages.rc будет сгенерирован до компиляции resource.rc. Мне не нужно было устанавливать его, но если вы обнаружите, что компилятор ресурсов пытается выполнить перед компилятором сообщения, вам придется установить это свойство. Он отключен для файла "messages.mc", но его можно установить в свойстве "Custom Build Step" проекта.