实验二

实验二

1.完成一个简单的MFC程序,并分析代码中对象类的关系,以及程序的运行流程。

2.用vc++6或vs2015/2017的命令行工具cl.exe,linker.exe等编译连接第2周的windows API程序和任务1的MFC程序。

实验过程:

1.完成一个简单的计算器MFC项目

打开VS2019,选择新建项目MFC如图所示:
在这里插入图片描述

配置项目:项目名称(用英文)

位置

解决方案

解决方案名称

在这里插入图片描述

等待进入MFC 应用程序类型选项:文档类型选择对对话框
在这里插入图片描述

打开MFC的图形设计界面:选择资源文件 点击 *.rc2文件

设计如图所示的界面
在这里插入图片描述

双击界面上的button转到*.cpp文件,相应的代码完成功能

确定button

void CMFCT2Dlg::OnBnClickedButton2()
{
// TODO: 在此添加控件通知处理程序代码

//得到文本框输入的数字和字符;

​ CString str1, str4, str2;
​ GetDlgItemText(IDC_EDIT1, str1);
​ GetDlgItemText(IDC_EDIT4, str4);
​ GetDlgItemText(IDC_EDIT2, str2);
​ //_T是一个宏,作用是让你的程序支持Unicode编码。
​ if (str4 != _T(""))
​ {
​ if (str4 == _T("+"))
​ {

	}
	else if (str4 == _T("-"))
	{

	}
	else if (str4 == _T("*"))
	{

	}
	else if (str4 == _T("/"))
	{

	}
	else
	{
	}
}

int number1, number2, result;
number1 = _ttoi(str1);
number2 = _ttoi(str2);
if (str4 != _T(""))
{
	if (str4 == _T("+"))
	{
		result = number1 + number2;
	}
	else if (str4 == _T("-"))
	{
		result = number1 - number2;
	}
	else if (str4 == _T("*"))
	{
		result = number1 * number2;
	}
	else if (str4 == _T("/"))
	{
		result = number1 / number2;
	}
	else
	{
		MessageBox(_T("运算符输入有误!"));
	}
}
str1.Format(_T("%d"), result);
SetDlgItemText(IDC_EDIT3, str1);

}

取消button

void CMFCT2Dlg::OnBnClickedButton3()
{
// TODO: 在此添加控件通知处理程序代码
exit(0);
}

完成结果:

输入两个数字,完成四则运算

在这里插入图片描述

2.cl.exe,linker.exe的使用:

配置号相应的环境变量(默认路径):

打开此电脑,右键点击属性,然后点击左侧的高级系统设置,再点击环境变量,我们这里在用户变量中添加即可。

找到cl.exe的所在路径,一般在:C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.25.28610\bin\Hostx86\x86

在环境变量PATH中添加C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.25.28610\bin\Hostx86\x86

系统变量再添加LIB变量:

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\lib\x86

添加INCLUDE变量:

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include

C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt

C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um

C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\cppwinrt

C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared

C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\winrt

再打开命令行输入cl

在这里插入图片描述

表示安装成功

cl运行MFC:

出现一些问题:
在这里插入图片描述

没有MFC的标准组件

解决办法:

首先需要安装“用于 x86 和 x64 的 Visual C++ MFC”;

C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\shared

C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\ucrt

C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\um

C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\winrt

近几个版本上述目录下是没有这些头文件的,所以我们需要在 MFC 的目录下寻找这些头文件;

即在:C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.16.27023\atlmfc\include

在这里插入图片描述

还出现以上错误,不知道如何修改了.

总结:

MFC大大减少代码量,有些代码可以自动生成。MFC是将Windo-w API封装成类,使用更加方便.在使用命令行工具cl.exe,linker.exe实现编译链接的过程遇到了许多的问题,查找了许多资料也没有得到解决,大部分是环境配置的问题,要先找到文件,再根据自己的问题去配置环境的,cl.exe与linker.exe,对于我而言,比较难以完成,所以这次实验是失败的了.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值