创建MFC常规dll,通过导出函数显示颜色信息对话框
2010-12-24 09:40
531 查看
在实现文件中添加:
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();//创建模态对话框
}
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();//创建模态对话框
}
相关文章推荐
- [MFC]关于VS2002中文版开发显示对话框的常规DLL出现RC2135错误的解决办法
- MFC dll 类型是 共享 规则 导出对话框函数使用出错解决办法
- dll MFC扩展类 导出类 AFX_EXT_CLASS 把一个类导出,不是函数 (请教朋友的,呵呵)
- MFC编程入门之十二(对话框:非模态对话框的创建及显示)
- 查看静态库(.lib)和动态库(.dll)的导出函数的信息
- MFC中CenterWindow()函数的模拟,对话框居中显示
- 控制台主程序通过调用DLL显示对话框
- 通过小练习掌握MFC知识点之起步篇--ComboBox的使用,DLL方式读取文件信息到CListCtrl控件中
- MFC调用win32窗口显示调试信息,使用AllocConsole 函数
- VS2010/MFC编程入门之十一(对话框:非模态对话框的创建及显示)
- VC中创建DLL,导出全局变量,函数和类
- 通过小练习掌握MFC知识点之起步篇--ComboBox的使用,DLL方式读取文件信息到CListCtrl控件中
- 通过GetProcAddress函数动态调用dll中地函数,是否必须通过extern C声明导出函数?(转)
- 查看静态库(.lib)和动态库(.dll)的导出函数的信息 error LNK2001: 无法解析的外部符号 _Delete
- VS2013/MFC编程入门之十三(对话框:向导对话框的创建及显示)
- VC++编程通过Bluetooth API调用对话框选择蓝牙设备并显示设备信息
- MFC/VC DLL导出对话框,焦点混乱问题
- 查看静态库(.lib)和动态库(.dll)的导出函数的信息 error LNK2001: 无法解析的外部符号 _Delete
- VS2010/MFC编程入门之十三(对话框:向导对话框的创建及显示)
- MFC中【Button】控件上局部动态显示字体信息和【对话框】名字的动态字体赋值性变化