MFC DLL 一个方便的导出函数宏定义

当然,可以自己定义宏,不过其实mfc已经帮我们做了


导出类的时候直接用这个AFX_EXT_CLASS 就ok了

class AFX_EXT_CLASS CMyDlg : public CDialogEx
{
DECLARE_DYNAMIC(CMyDlg)


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


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


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


DECLARE_MESSAGE_MAP()
};


然后在工程属性- c/c++  - 预处理器 - 预处理器定义  添加   _AFXEXT; WIN32;_WINDOWS;_DEBUG;


进去看宏,发现都已经帮我们做好了,当然你喜欢也可以自己去定义 __declspec(dllexport)

#ifndef AFX_EXT_DATA
#ifdef _AFXEXT
#define AFX_EXT_CLASS       AFX_CLASS_EXPORT
#define AFX_EXT_API         AFX_API_EXPORT
#define AFX_EXT_DATA        AFX_DATA_EXPORT
#define AFX_EXT_DATADEF
#else
#define AFX_EXT_CLASS       AFX_CLASS_IMPORT
#define AFX_EXT_API         AFX_API_IMPORT
#define AFX_EXT_DATA        AFX_DATA_IMPORT
#define AFX_EXT_DATADEF
#endif
#endif

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将 MFC 应用程序的函数导出DLL,可以按照以下步骤进行操作: 1. 在 Visual Studio 中,创建一个新的 Win32 项目。 2. 选择 DLL 项目类型,并选择“空项目”。 3. 添加您的 MFC 应用程序的源代码文件和头文件到新的 DLL 项目中。 4. 在 DLL 项目中添加一个新的头文件,该头文件包含您想要导出函数的声明。 5. 在该头文件中,使用以下语法来导出函数: ```cpp __declspec(dllexport) returnType functionName(parameterList); ``` 其中,returnType 是函数返回类型,functionName 是函数名,parameterList 是函数参数列表。 6. 在 DLL 项目中,将导出函数的实现添加到源文件中。 7. 在 DLL 项目中,生成 DLL 文件。您可以使用“生成”菜单中的“生成解决方案”选项来执行此操作。 8. 要在其他应用程序中使用 DLL,您需要将其包含在项目中,并在代码中使用以下语法调用函数: ```cpp HMODULE hModule = LoadLibrary(_T("yourDLL.dll")); FARPROC fp = GetProcAddress(hModule, "functionName"); returnType (*func)(parameterList) = (returnType (*)(parameterList))fp; ``` 其中,yourDLL.dll 是您的 DLL 文件的名称,functionName 是导出函数的名称,returnType 和 parameterList 是导出函数的返回类型和参数列表。 9. 将函数名称放入 GetProcAddress 函数中,以获取指向该函数的指针。 10. 调用该函数指针来执行导出函数。 请注意,您需要在使用完 DLL 后,使用 FreeLibrary 函数释放加载的 DLL

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值