2011-07-11 43 views
1

我有一个mfc资源只有DLL的字符串和菜单,但我想只有在主应用程序(MFC EXE)图标和位图,我不想有相同的位图/图标在n资源中只有dll的,只在主应用程序中。中性资源的DLL

这可能吗?如果是,我们如何才能做到这一点? (我尝试使用的图标和位图中性语言,但是当我做的LoadImage/loadicon失败

注:我使用AfxSetResourceHandle(DLL)来设置我的资源

感谢

回答

1

MFC有一个相当复杂的系统用于搜索除了声明的资源DLL之外的各种额外DLL的资源(请参阅dllinit.cpp中的AfxFindResourceHandle)。我建议把你的语言中立资源放在一个单独的DLL中,并把它当作一个扩展DLL来对待。

马丁

+0

如果你可以通过一些细节来实现这一点,它可能会比我的答案更好。 –

+0

关于MFC扩展dll的文档在这里: http://msdn.microsoft.com/en-us/library/h5f7ck28(VS.80).aspx 和应用程序向导将生成一个空白的播放,您可以为其添加资源并使用:: AfxLoadLibrary加载。 Martyn –

+0

我认为这是我阅读所有文档后的正确答案,但不是最简单的一个。 – Nuno

1

每次需要加载资源时,您都可以继续调用AfxSetResourceHandle,并为其提供您希望查找资源的DLL的句柄。或者,您可以绕过MFC获取一组资源,或者使用例如::LoadImage,这需要一个实例作为参数处理。

+0

没错这个工作,但不是一个完美的解决方案......我不得不放弃,因为扩展DLL案件的正确答案马丁,但我不会使用这项建议,我会用你的:)(不太优雅的解决方案) – Nuno