创建MFC常规dll,通过导出函数显示颜色信息对话框

来源:互联网 发布:拍卖系统安卓as源码 编辑:程序博客网 时间:2024/06/05 20:11

在实现文件中添加:

void CUseDlgRegularDllView::OnLButtonDblClk(UINT nFlags, CPoint point)
{
 // TODO: Add your message handler code here and/or call default
 typedef void (*PFDlgShow)(int,int,int);
  HINSTANCE hdll;
 PFDlgShow dlgshow;
 hdll=LoadLibrary("..//Debug//DlgRegularDll.dll");
 if(hdll!=NULL)
 {
  dlgshow=(PFDlgShow)GetProcAddress(hdll,"ShowDlg");
  dlgshow(m_r,m_g,m_b);
 }
 else
 {
  AfxMessageBox("加载Dll失败!");
  return;
 }
 FreeLibrary(hdll);

 CView::OnLButtonDblClk(nFlags, point);
}

void CUseDlgRegularDllView::OnDraw(CDC* pDC)
{
 CUseDlgRegularDllDoc* pDoc = GetDocument();
 ASSERT_VALID(pDoc);
 m_r=100;m_g=200;m_b=0;
 pDC->SetTextColor(RGB(m_r,m_g,m_b));
 pDC->TextOut(200,200,"双击鼠标左键,调用DLL导出的对话框,显示文本颜色!");


 // TODO: add draw code for native data here
}

 

 

在被调用的文件中:

新建一个CColoarDlg的对话框类

然后添加一个ColoarDlgExport.cpp文件

在该文件下添加以下代码:

#include "StdAfx.h"
#include "DlgRegularDll.h"
#include "ColoarDlg.h"
extern "C" _declspec(dllexport)ShowDlg(int m_r,int m_g,int m_b)//导出函数
{
 AFX_MANAGE_STATE(AfxGetStaticModuleState());//获取DLL模块状态
 CColoarDlg dlg;                 //创建对话框对象
 dlg.m_Red=m_r;
 dlg.m_Green=m_g;
 dlg.m_Blue=m_b;
 dlg.DoModal();//创建模态对话框

}

 

原创粉丝点击