MFC扩展DLL导出类相关问题

 用向导创建一个扩展DLL工程,添加一个类,然后在类前面名前加AFX_EXT_CLASS 就行了,这个类就被导出了,网上例子很多,似乎也很简单,其实类复杂一点,就会有些问题了,如:

ExtDlg.h

#pragma once
#include "resource.h"
#include "dxxxdlg.h"//另一个类的头文件

// CExtDlg 对话框

class  AFX_EXT_CLASS CExtDlg : public CDialog
{
 DECLARE_DYNAMIC(CExtDlg)

public:
 CExtDlg(CWnd* pParent = NULL);   // 标准构造函数
 virtual ~CExtDlg();

// 对话框数据
 enum { IDD = IDD_EXTDLG };

protected:
 virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 支持

 DECLARE_MESSAGE_MAP()
public:
 int m_num;
public:
 virtual BOOL OnInitDialog();
public:
 int m_input;
public:
 afx_msg void OnBnClickedBnSet();
public:
 CDxxxDlg m_xxxDlg;
};

然后在函数中使用 m_xxxDlg对象

我想表达的情况是:我想导出B类,但在B类中又包含了A类的对象,因此需要在B类的头文件 中包含A类的头文件,

我还是照例把.lib,.dll,.ExtDlg.h文件拷贝到调用此DLL的工程的相关目录下,一调用,问题就出来了,说dxxxdlg.h 没有找到。

这个很显然,当然目录下根本没有这个文件,可是在ExtDlg.h中肯定要包含这个文件呀,这怎么办。最简单的办法是将那个头文件也拷贝过来,但通常情况下,别人给你一个.h和.lib .dll就了不得了,哪个还把头文件都给你呢,一想肯定这个封装是问题的,可问题的我也不知道怎么封装比较合理,稍后继续.....

 

将所有要用到的头文件都包含,找不到的头文件都添加进来就行了。本来就是这样的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值