1

最初,我的 MFC 程序有一个 .rc 文件,其中包含两种语言的资源。但是,现在我在两个单独的仅资源 dll 项目中有两个 .rc 文件(在同一个解决方案中),并使用 LoadLibrary() 和 AfxSetResourceHandle() 动态选择语言(我参考了这篇文章)。

它似乎运行良好,但一个问题是我无法正确使用对话框编辑器来处理纯资源 dll 项目中的对话框。它正常显示对话框,但我无法通过双击控件或使用属性菜单来添加事件处理程序。有什么方法可以连接同一解决方案中不同项目中的代码和资源文件?

编辑

我稍微改变了方法。我没有在单独的资源项目中创建新的 RC 文件,而是在主项目中创建它们并将它们从构建中排除。我让它们被单独的资源项目引用。

重要的一点是我添加#include "resource.h"了每个 RC 文件的只读符号指令(您可以通过在资源视图中右键单击 RC 文件并选择资源包含项来执行此操作)。"resource.h"这是与主项目的原始 RC 文件相关的文件,该文件具有多种语言的资源。我不知道为什么要添加它,但卫星 dll 似乎有必要运行良好。

剩下的一个问题是如何维护多个 RC 文件。对于添加资源,如果我要维护原始 RC 文件及其 resource.h 文件,我可能必须先将资源添加到原始 RC 文件中,然后将它们复制到每种语言特定的 RC 文件中。这是正确的方法,还是我可以在没有原始 RC 文件的情况下继续?

4

1 回答 1

1

将此资源的 RC 文件也包含在项目中。但将其从构建中排除。

如果你有两个资源文件。以不同的方式使用资源文件:

  1. 使用普通的 MFC 资源文件创建一个独立程序...
  2. 在内部对所有对话资源使用语言标签
  3. 比在第二个项目中使用此资源来构建附属 DLL
  4. 设置资源编译器定义的资源,使带有特定语言标记的资源不包括在内。
于 2014-05-07T11:59:55.900 回答