MFC创建及引用动态链接库


1.创建动态链接库文件

  • 创建MFC(DLL)程序项目
  • MFC创建及引用动态链接库_第1张图片
  • 定义一个对话框函数
      void _stdcall ShowDlg()
      {
    	  MessageBox(NULL,_T("动态链接库中的对话框!"),_T("提示"),0);
      }
  • 修改.def文件
    ; SkinDLL.def : 声明 DLL 的模块参数。
    
    LIBRARY "SkinDLL"
    DESCRIPTION 'SkinDLL 窗口动态链接库'
    
    EXPORTS
        ; 此处可以是显式导出
    	ShowDlg;
    
    编译生成 项目名.dll文件和项目名.lib文件

2.引用动态链接库文件

  • 将生成的项目名.dll文件拷贝到新项目目录下
  • MFC创建及引用动态链接库_第2张图片
  • 引用文件中全局区域定义一个函数指针类型

typedef void(_stdcall *funShowDlg)();

  • 添加按钮事件

void CDLLTestDlg::OnBnClickedOk()
{
	// TODO: 在此添加控件通知处理程序代码
	HMODULE hMod = LoadLibrary(_T("SkinDll.dll"));
	funShowDlg ShowDlg;
	if (hMod)
	{
		//获取动态链接库中ShowDlg函数的地址
		ShowDlg = (funShowDlg)GetProcAddress(hMod,"ShowDlg");
		if (ShowDlg)
		{
			ShowDlg();
		}
		FreeLibrary(hMod);
	}
	CDialogEx::OnOK();
}

  • 编译生成结果:

MFC创建及引用动态链接库_第3张图片

你可能感兴趣的:(MFC创建及引用动态链接库)