在实现文件中添加:
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();//创建模态对话框
}