【问题标题】:Using a Dialog Box in a c++ dll project在 c++ dll 项目中使用对话框
【发布时间】:2012-07-09 15:53:06
【问题描述】:

我想向 c++ dll 应用程序添加一个对话框。首先我想知道这是否可能,然后我该如何编译项目。

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

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

有什么建议可以解决这个问题吗?我也使用 windows.h 库。

【问题讨论】:

标签: c++ dll mfc dialog


【解决方案1】:

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

如果您打开了预编译头文件,您的项目中将有一个 stdafx.h,其中应该包含各种 #include <afx...> 这些是需要包含的 MFC 头文件。

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

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

【讨论】:

    【解决方案2】:
    • 什么是 MFC 标准库?它应该是标准 Windows 库。
    • 您是否真的在使用 MFC 进行对话框(CDialog 等)?如果没有,则不需要使用 MFC。
    • 如果您使用 MFC,最好创建一个支持 MFC 的 DLL 项目,查找所有设置并将它们放入您的 DLL。它包括 C++ 设置、链接器和 ma​​nifest 工具设置。

    【讨论】:

      猜你喜欢
      • 2017-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-07
      • 2012-02-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多