将消息编译器(mc.exe)配置为VC++ 2010中的自定义编译器步骤?

EMS*_*EMS 13 visual-studio-2010

任何人都可以列出配置mc.exe(消息编译器)的具体和详细步骤,以将.mc文件编译为.rc文件作为VC++ 2010中的自定义编译器步骤吗?
我真的迷失了如何做到这一点.

Dou*_*son 24

汉斯帕斯特几乎是对的.遗憾的是,$(InputPath)和$(InputName)未在VS 2010中定义.而是创建消息文件:

  • 右键单击您的项目 - >添加 - >新项目
  • 选择"文本文件(.txt),但将其命名为".mc"文件(如"messages.mc")
  • 创建资源文件(例如,"resources.rc")
  • 编辑资源文件,使其只包含一行:

#include"messages.rc"

该文件将由消息编译器生成.现在添加一个自定义构建步骤来运行消息编译器:

  • 右键单击messages.mc并选择"属性".
  • 在"属性"对话框中,将"配置"设置为"所有配置".
  • 在"配置属性"下,单击"常规".
  • 确保"从构建中排除"属性设置为"否".
  • 从下拉菜单中将"项目类型"属性设置为"自定义构建工具",然后单击"应用"按钮,以显示"自定义构建工具"属性.
  • 单击"自定义构建工具"(Custom Build Tool)属性下的"常规"(General).
  • 将"命令行"属性设置为:

    mc%(FullPath)

  • 将Description属性设置为"编译消息..."之类的内容

  • 将Outputs属性设置为:

    %(文件名).RC;%(文件名)·H; MSG0409.bin

文件MSG00409.bin来自messages.mc中的以下行:

LanguageNames =(英文= 0x409:MSG00409)

您添加到messages.mc的每种语言都可以有一个bin文件.将它们列在输出中的好处是在清理项目时将删除它.

我唯一不确定的是设置"Execute Before"属性以保证在编译resource.rc之前生成messages.rc.我没有设置它,但如果你发现资源编译器试图在消息编译器之前执行,那么你将不得不设置这个属性.它对"messages.mc"文件禁用,但可以在项目的"自定义构建步骤"属性中设置.

  • 如果你在FullPath中有空格,那么使用mc"%(FullPath)" (4认同)

Han*_*ant 1

右键单击项目,添加 + 新项目,选择文本文件,将其命名为 Blah.mc。输入或粘贴定义。右键单击 Blah.mc、属性、自定义构建步骤:

  • 命令行 = mc $(InputPath)
  • 输出 = $(InputName).rc

编辑您的 .rc 文件,添加:

#include "Blah.rc"
Run Code Online (Sandbox Code Playgroud)

为我工作,应该很接近。