【问题标题】:how can creat MFC extention dll with multi class?如何创建具有多类的 MFC 扩展 dll?
【发布时间】:2015-12-16 07:40:17
【问题描述】:

我想创建一个MFC扩展dll,我的问题是我想在客户端使用的类包括一些在我的项目中实现的头文件,现在如何在客户端使用它?

例如要从我的 dll 中导出的头文件类如下所示

#include "classme1.h"
#include "classme2.h"

class AFX_EXT_CLASS dllclass
{
...
//anthor function
};

当我在客户端中包含这个头文件时,客户端项目有错误,需要两个文件“classme1.h”和“classme2.h”。 我该怎么做才能解决我的问题?

【问题讨论】:

  • 我的意思是,当您创建 dll 时,最好让客户端可以看到一个头文件,而不是您在项目中实现的所有头文件,对于上面的示例,我只想添加头文件“dllclass " 与客户端和客户端看不到另一个头文件。知道我该怎么做吗?

标签: c++ dll mfc


【解决方案1】:

将头文件复制到两个项目都可以读取的公共位置。

您可以在#include 语句中定义路径,也可以更改C++ 预处理器的项目设置以搜索不同附加目录中的文件。

项目设置 -> C/C++ -> 常规 -> 附加包含目录。

对于复杂的项目,我经常使用 Property Manager。您可以定义特定设置并将它们添加到您当前的项目中。它只是一个可以让您轻松自定义项目的文件。

请记住,您还需要对 LIB 文件的引用。它必须在链接器部分中指定。或者也必须添加到项目中。 (见上面的提示)。

【讨论】:

    【解决方案2】:

    xMRi 建议的替代方案是重构您的扩展 DLL,以消除客户端包含您的私有头文件的需要。

    阅读 PIMPL Idiom(指向 IPLementation 的指针),例如:Why should the "PIMPL" idiom be used?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多