中性仅资源 DLL
Posted
技术标签:
【中文标题】中性仅资源 DLL【英文标题】:Neutral Resource-Only DLL 【发布时间】:2011-07-11 21:55:11 【问题描述】:我有一个仅包含字符串和菜单的 mfc 资源 dll,但我希望仅在主应用程序 (MFC exe) 中具有图标和位图,我不想仅在 n 资源中具有相同的位图/图标dll,仅在主应用程序中。
这可能吗?如果是,我们如何做到这一点? (我尝试在图标和位图中使用中性语言,但是当我制作 loadimage/loadicon 时它失败了。
注意:我使用 AfxSetResourceHandle(dll) 来设置我的资源
谢谢
【问题讨论】:
【参考方案1】:MFC 有一个非常精细的系统,用于搜索您声明的资源 DLL 之外的大量额外 DLL 的资源(请参阅 dllinit.cpp 中的 AfxFindResourceHandle)。我建议将与语言无关的资源放在单独的 DLL 中,并将其视为扩展 DLL。
马丁
【讨论】:
如果你能用一些细节来充实这一点,它可能会比我的答案更好。 关于 MFC 扩展 DLL 的文档在这里:msdn.microsoft.com/en-us/library/h5f7ck28(VS.80).aspx 并且 AppWizard 会生成一个空白文件供您使用,您可以在其中添加资源并使用 ::AfxLoadLibrary 加载。马丁 我认为这是我阅读所有文档后的正确答案,但不是最简单的答案......【参考方案2】:您可以在每次需要加载资源时继续调用 AfxSetResourceHandle,为其提供您希望在其中找到资源的 DLL 的句柄。或者,您可以绕过 MFC 获取一组资源或使用其他资源,例如::LoadImage
将实例句柄作为参数。
【讨论】:
是的,这可行,但不是一个优雅的解决方案...由于扩展 DLL 案例,我必须给 Martyn 正确的答案,但我不会使用那个建议,我会使用你的 :) (不太优雅的解决方案)以上是关于中性仅资源 DLL的主要内容,如果未能解决你的问题,请参考以下文章