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