在c ++ DLL项目中使用对话框

时间:2012-07-10 07:46:06

标签: c++ dll mfc dialog

我想在c ++ dll应用程序中添加一个对话框。首先,我想知道这是否可行,之后如何进行项目编译。

当我在配置中“使用MFC标准库”时,我收到错误:致命错误C1189:#error:使用/ MD建立MFC应用程序[d](CRT dll版本)需要MFC共享dll版本。请#define _AFXDLL或不要使用/ MD [d]

当我在共享dll文件中使用MFC设置配置时,我收到错误:一般错误c101008a:无法将更新后的清单保存到文件“。\ Debug \ RenameDLL.dll.embed.manifest”false参数。< / p>

有任何建议如何解决这个问题?我也使用windows.h库。

2 个答案:

答案 0 :(得分:1)

是的,这肯定是可能的,并且“在共享DLL中使用MFC”是您想要的。

如果您已打开预编译标头,则项目中将包含stdafx.h,其中应包含各种#include <afx...>这些是要包含的必需MFC标头。

我怀疑你的第二个错误会以Rebuild All消失。

您可能会或可能不会遇到的另一个问题是在对话框实例上调用DoModal()后没有任何反应。在这种情况下,请在AFX_MANAGE_STATE(AfxGetStaticModuleState())

之前放置DoModal()

答案 1 :(得分:0)

  • 什么是MFC标准库?它应该是标准Windows库。
  • 您是否实际使用MFC进行对话(CDialog等)?如果没有,则不需要使用MFC。
  • 如果您使用的是MFC,最好创建一个支持MFC的DLL项目,查找所有设置并将它们放入DLL中。它包括C ++设置,链接器和清单工具设置。