vs2010 中创建扩展dll
来源:互联网 发布:图片缩放软件 编辑:程序博客网 时间:2024/05/17 10:52
新建一个MFC 扩展DLL 加一个类在工程
但在类的开头要加上class AFX_EXT_CLASS CComputer : public CObject(基类)
头文件
#pragma once
// CComputer command target
class AFX_EXT_CLASS CComputer : public CObject
{
public:
CComputer();
virtual ~CComputer();
void ComputerSet(double data1,double data2);
public:
double m_data1;
double m_data2;
public:
double Add();
double Substract();
double Devide();
double Multiple();
};
实现文件
#include "stdafx.h"
#include "Computer.h"
// CComputer
CComputer::CComputer()
{
m_data1 = 0;
m_data2 = 0;
}
CComputer::~CComputer()
{
}
void CComputer::ComputerSet(double data1,double data2)
{
m_data1 = data1;
m_data2 = data2;
}
double CComputer::Add()
{
return m_data1 + m_data2;
}
double CComputer::Substract()
{
return m_data1 - m_data2;
}
double CComputer::Multiple()
{
return m_data1 * m_data2;
}
double CComputer::Devide()
{
if(m_data2 != 0)
return (double ) m_data1 / (double) m_data2;
else
{
AfxMessageBox(_T( "分??母?不?能??为a零??" ));
return 1;
}
}
编译后产生 在Debug目录下产生 ExtensionDll.ilb和ExtensionDll.dll
然后创建测试dll的工程ExtensionTest是基于对话框的
添加控件一览
控件名称控件ID变量名 IDC_DATA1m_data1 IDC_DATA2m_data2 IDC_RESULTm_result加IDC_ADDOnComputer(UINT nID)减IDC_SUBSTRACT 乘IDC_MULTIPLE 除IDC_DEVIDE
在ExtensionTeseDlg.h文件中添加
#include "Computer.h"
在类的内部添加
afx_msg void OnComputer(UINT nID);
public:
double m_data1;
double m_data2;
double m_result;
CComputer * m_pComputer;
afx_msg void OnBnClickedCancel();
实现文件中 初始化参数
CExtensionTestDlg::CExtensionTestDlg(CWnd* pParent /*=NULL*/)
: CDialogEx(CExtensionTestDlg::IDD, pParent)
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
m_pComputer = new CComputer();
m_data1 = 0.0;
m_data2 = 0.0;
m_result = 0.0;
}
在消息处理函数中添加
BEGIN_MESSAGE_MAP(CExtensionTestDlg, CDialogEx)
ON_COMMAND_RANGE(IDC_ADD,IDC_DEVIDE,OnComputer)
END_MESSAGE_MAP()
剩余的函数
void CExtensionTestDlg::OnComputer(UINT nID)
{
UpdateData();
m_pComputer -> ComputerSet(m_data1,m_data2);
switch(nID)
{
case IDC_ADD:
m_result = m_pComputer ->Add();
break;
case IDC_SUBSTRACT:
m_result = m_pComputer ->Substract();
break;
case IDC_MULTIPLE:
m_result = m_pComputer ->Multiple();
break;
case IDC_DEVIDE:
m_result = m_pComputer ->Devide();
break;
}
UpdateData( false);
if(nID == IDC_DEVIDE && m_data2 == 0)
{
CEdit *pEdit =( CEdit* ) GetDlgItem(IDC_DEVIDE);
pEdit ->SetFocus();
}
}
void CExtensionTestDlg::OnBnClickedCancel()
{
if(m_pComputer)
{
delete m_pComputer;
m_pComputer = NULL;
}
// TODO: Add your control notification handler code here
CDialogEx::OnCancel();
}
最后将ExtensionDll.dll文件和ExtensionDll.lib拷贝在当前目录下
再在project->property->linker->input下添加依赖关系
最后编译 运行
- vs2010 中创建扩展dll
- VS2010中创建DLL
- VS2010中 C++创建DLL
- VS2010中 C++创建DLL图解
- VS2010中 C++创建DLL图解
- VS2010中 C++创建DLL图解
- VS2010中 C++创建DLL图解.
- VS2010中 C++创建DLL图解.
- VS2010中 C++创建DLL图解
- VS2010中 C++创建DLL图解
- VS2010中 C++创建DLL图解
- VS2010中 C++创建DLL图解
- C++ VS2010中 C++创建DLL图解
- VS2010中 C++创建DLL图解
- VS2010中 C++创建DLL图解
- VS2010中 C++创建DLL图解
- VS2010中C++创建DLL图解
- VS2010中C++创建DLL图示
- 触控科技CEO陈昊芝谈移动游戏市场趋势变化
- 美丽达人抗衰老法
- MySql Cast与Convert函数
- 如何使用设计模式——qq交流群讨论纪实
- JS控制弹出窗口
- vs2010 中创建扩展dll
- 帧中继
- c++函数返回引用
- css图像样式
- ASIProgressDelegate:实现定制的上传进度显示
- 越狱兔主角之基里连科 (キレネンコ/Кирененко)
- Android SDK更新以及ADT更新出现问题的解决办法
- Android随记------GalleryView禁止选中项目向中间滑动
- C# AOP微型框架实现