Visual c++ 在MFC应用程序中加载包含windows对话框的dll

Visual c++ 在MFC应用程序中加载包含windows对话框的dll,visual-c++,dll,mfc,Visual C++,Dll,Mfc,我正在使用MFC开发一个应用程序。我需要创建一个包含两个对话框的dll。dll中的对话框是注册和登录对话框。然后dll中的对话框将显示在MFC应用程序中。如何从MFC应用程序中的dll加载这些对话框。您可以将所有对话框资源放在单独的dll中,即所谓的仅限资源的dll HINSTANCE h = LoadLibrary("myresources.dll") ; AfxSetResourceHandle(h) ; 之后,对话框(以及所有其他资源)将从该dll而不是从.exe获取。您不需要在一个dl

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

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

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

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

您不需要在一个dll中保存所有资源。当你的项目越来越大,你肯定会有两个以上的dll。当您向对话框添加新的/删除控件或其他内容时,您将需要重新生成所有项目(因为您将更改您的分支资源dll),这将是一件痛苦的事情。它消耗时间

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

例如: test1.dll资源.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
#define _APS_NEXT_RESOURCE_VALUE        14000
#define _APS_NEXT_COMMAND_VALUE         15000
#define _APS_NEXT_CONTROL_VALUE         16000
#define _APS_NEXT_SYMED_VALUE           17000
test2.dl 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
#define _APS_NEXT_RESOURCE_VALUE        14000
#define _APS_NEXT_COMMAND_VALUE         15000
#define _APS_NEXT_CONTROL_VALUE         16000
#define _APS_NEXT_SYMED_VALUE           17000
您正在谈论Windows窗体,但问题没有标记为[.NET]。哪一个是错的?