0

我想向 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 库。

4

2 回答 2

1

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

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

我怀疑你的第二个错误会随着Rebuild All.

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

于 2012-07-10T16:15:35.753 回答
0
  • 什么是 MFC 标准库?它应该是标准 Windows 库。
  • 您实际上是否将 MFC 用于对话框(CDialog 等)?如果没有,则不需要使用 MFC。
  • 如果您使用 MFC,最好创建一个支持 MFC 的 DLL 项目,查找所有设置并将它们放入您的 DLL。它包括 C++ 设置、链接器和清单工具设置。
于 2012-07-10T08:10:41.887 回答