在MFC应用程序中加载包含Windows对话框的DLL

时间:2013-12-11 10:59:41

标签: visual-c++ dll mfc

我正在使用MFC开发应用。我需要创建一个包含两个对话框的dll。 dll中的对话框是注册和登录对话框。然后,dll中的对话框将显示在MFC应用程序中。如何在我的MFC应用程序中从dll加载这些对话框。

2 个答案:

答案 0 :(得分:2)

您可以将所有对话框资源放在一个单独的DLL中,即所谓的仅限资源的DLL。

HINSTANCE h = LoadLibrary("myresources.dll") ;
AfxSetResourceHandle(h) ;

之后,将从该dll而不是.exe中获取对话框(以及所有其他资源)。

答案 1 :(得分:1)

您不需要在一个dll中保存所有资源。当你的项目变得越来越大,你肯定会超过两个dll。当您向对话框添加新/删除控件或其他内容时,将会很痛苦,您将需要重建所有项目(因为您将更改分支资源dll)。它吃的时间......

更好的解决方案,以保留resource.dll中的一些主要资源(不会经常更改)和所有其他控件保持在单独的DLL中。您只需要遵循所有项目的资源ID必须不同。

例如: test1.dll resource.h

#define _APS_NEXT_RESOURCE_VALUE        10000
#define _APS_NEXT_COMMAND_VALUE         11000
#define _APS_NEXT_CONTROL_VALUE         12000
#define _APS_NEXT_SYMED_VALUE           13000

test2.dl resource.h

#define _APS_NEXT_RESOURCE_VALUE        14000
#define _APS_NEXT_COMMAND_VALUE         15000
#define _APS_NEXT_CONTROL_VALUE         16000
#define _APS_NEXT_SYMED_VALUE           17000