MFC调用DLL,实现

实现功能:
可以随意设置一个时间,在时间之前,MFC应用程序可以调用DLL中的求和函数,求出两数的和;过了设置的时间,就会出现消息框,提示“时间超时,不能运行函数!”,并且函数不可在被调用。
实现过程:
一、
1.先打开Microsoft Visual Studio 2010软件。
2.点击新建项目->选择MFC DLL,在名称处填写“finish1”,点击确定。
3.点击下一步->选择“使用共享MFC DLL的规则 DLL”,点击完成。
4.在“finish1.h”文件中,添加extern “C” __declspec(dllexport)bool add(int a,int b,int *c);语句。
5.在“finish1.def”文件中,输入add。
6.在“finish1.cpp”文件中,添加如下语句:

extern "C" __declspec(dllexport)bool add(int a,int b,int *c)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
CTime m_date;
m_date = CTime::GetCurrentTime() ;
int year1,month1,day1;
 year1 = m_date.GetYear();
month1 = m_date.GetMonth();
  day1 = m_date.GetDay();
  COleDateTime t1(year1,month1,day1,0,0,0);
  COleDateTime t2(2018,11,3,0,0,0);
  COleDateTimeSpan timeSpan;
 timeSpan=t2-t1;
 int d;
  d=timeSpan.GetDays();
  if(d<0)
  {
   return false;}
  else
  {  *c=a+b;
  return true;}
  } ```
 7.将三个文件修改完,点击保存。
 8.至此,.dll文件基本上就成功生成了。
 二、
 1.在“解决方案资源管理器中”中,点击右键,选择“添加”,然后选择“新建项目”。
 2.选择“MFC 应用程序”,并起名为“finish2”->点击下一步->在“应用程序类型”中,选择“基于对话框”,选择“在共享DLL中使用MFC”,点击下一步->在“用户界面功能”里,直接点击下一步->在“高级功能”里,直接点击下一步->在“生成的类”中,选择“Cfinish2Dlg”,其他的不用改,点击完成。
 3.在生成的对话框中,添加三个Static Text(静态文本控件)、三个Edit Control(编辑框)和一个BUTTON(按钮),并摆按如下的摆放,随后在属性中,分别将文本控件的Caption改为被加数,加数,和;将ID分别改为IDC_ADD1、IDC_ADD2、IDC_SUM。将编辑框的ID分别改为IDC_EDITADD1、IDC_EDITADD2、IDC_EDITSUM3。将按钮的ID改为IDC_ADDBUTTON1。
4.以第一个编辑框为例。在编辑框上点击右键,选择 “添加变量”;
5.将类别改为“Value”,然后将变量类型改为“int”,最后在变量名处填写“add1”。之后第二个编辑框和第三个编辑框按此操作,不过分别起名为add2、sum。
6.至此,对话框框架完成。双击按钮,进入“finish2Dlg.cpp”文件。
7.为了避免之后出现错误,先找到“解决方案资源管理器”,在项目finish2上点击右键,选择“属性”->在左栏中选择“常规”,之后将“字符集”处改为“未设置”。点击确定。
8.找到void Cfinish2Dlg::OnBnClickedAddbutton1()语句,并在大括号中添加如下代码:

HINSTANCE hPro= ::LoadLibrary(“finish1.dll”);
if(hPro == NULL)
{return;}
else
{typedef bool (*MENU_EXECUTE)( int a,int b,int *c);
MENU_EXECUTE mebu = NULL;
mebu=(MENU_EXECUTE)::GetProcAddress(hPro, “add”);//MenuExecute 函数名字
if(mebu)
{
UpdateData(TRUE);
bool r=mebu(add1,add2,&s);
if(rfalse)
{ MessageBox(_T(“时间超时,不能运行函数!”),NULL,MB_OK);}
if(r
true)
{sum=s;}
UpdateData(FALSE);
}
::FreeLibrary(hPro);
}

之后,点击保存。
9.在菜单栏中找到“生成”,选择“生成解决方案”。之后会成功生成两个解决方案。
10.在“解决方案资源管理器”中,找到“finish2”项目,点击右键,选择“设为启动项目”。
11.在finish2Dlg.cpp文件下,找到菜单栏的“调试”,点击开始执行(不调试)。
12.至此,整个MFC调用DLL的过程完成。之后可以根据需要改变时间。







 








 








  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值