实验二
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,对于我而言,比较难以完成,所以这次实验是失败的了.