【发布时间】:2014-06-24 08:21:08
【问题描述】:
最初我的 MFC 程序有一个 .rc 文件,其中包含两种语言的资源。但是,现在我在两个单独的纯资源 dll 项目中有两个 .rc 文件(在同一个解决方案中),并使用 LoadLibrary() 和 AfxSetResourceHandle() 动态选择语言(我引用了this article)。
它似乎运行良好,但一个问题是我无法正确使用对话框编辑器来处理纯资源 dll 项目中的对话框。它正常显示对话框,但我无法通过双击控件或使用属性菜单来添加事件处理程序。有什么方法可以连接同一解决方案中不同项目中的代码和资源文件?
编辑:
我稍微改变了方法。我没有在单独的资源项目中创建新的 RC 文件,而是在主项目中创建它们并将它们从构建中排除。我让它们被单独的资源项目引用。
重要的一点是我在每个 RC 文件的 只读符号指令 中添加了#include "resource.h"(您可以通过右键单击资源视图中的 RC 文件并选择 资源包括项)。 "resource.h" 这里是与主项目的原始 RC 文件相关的文件,该文件具有多种语言的资源。我不知道为什么要添加它,但是卫星 dll 似乎有必要运行良好。
剩下的一个问题是如何维护多个 RC 文件。对于添加资源,如果我要维护原始 RC 文件及其 resource.h 文件,我可能必须先将资源添加到原始 RC 文件中,然后将它们复制到每种语言特定的 RC 文件中。这是正确的方法,还是我可以不用原始 RC 文件继续?
【问题讨论】:
标签: c++ visual-studio dll mfc resource-dll