5.4.5 退出函数OnExit:
为”退出”按纽添加BN_CLICKED响应函数OnExit,代码如下:
void CFtpDlg::OnExit()
{
m_pConnection = NULL;
m_pFileFind = NULL;
DestroyWindow(); //销毁对话框资源
}
6.测试程序
6.1 连接操作:
6.2 连接成功后:
此后可根据FTP服务器所提供的权限进行相应的操作
7.整个设计过程中遇到的主要问题
1. 如果已经连上了某服务器,而在没有退出程序之前,再点连接,就会有问题了
原因:
CFtpDlg在调用OnExit函数的时候仅仅是隐藏了对话框,并没有销毁它,导致了m_FtpDlg的重复创建m_FtpDlg.Create(IDD_DIALOG2,this);此行代码是问题关键,点退出时,并没有销费
解决之道:
OnExit函数中调用DestryWindow,而不是 CDialg::OnCancel;
2. 在进入下一级目录的函数编写过程中,只能进入第二层目录
原因:
假设当前目录为 “/”,进入第一层子目录”FTP”之后,当前目录变为“/FTP”,再想进入FTP目录下的”MyFtp”子目录的时候,之前的代码,仅仅是实现了 “/FTP”+”MyFtp”简单加法,即当前目录为”/FTPMyFtp”,虽然是不对的。
解决之道: 在获取子目录名称之前,使当前目录所代表的字符串加上符号 ‘/’ ,代码表示为: strCurrentDirectory+="/";
3. 在返回上一级目录的函数编写过程中,无法返回到根目录
原因:
比如:在”/FTP”之下,返回到上一级目录,原代码将导致当前目录strCurrentDirectory为空,
如果运行m_pConnection->SetCurrentDirectory(strCurrentDirectory),显然也是不对的
解决之道:
在GetLastDiretory中添加判断:当前目录是否为空,如果是,则设置strCurrentDirectory=”/”;
代码实现为:
if (LastIndex == 0)
str="/";
8 心得体会
在这次课程设计中,我们小组通过从各个方面查找资料,了解了WinInet API编程的基本知识,熟悉了MFC编程中的一些控件知识,通过这次设计锻炼了我们组员的团队协作能力。
通过对Ftp这种大型的设计,我们组成员深感我们平时的编程习惯与良好的编程习惯相差甚远,小组成员决定在以后的编程过程中养成良好的编程习惯,这样有助于自己所编的程序清晰明了便于该错还有助于别人来立解你的程序。同时通过这次课程设计我们形成了通过从各方面查找资料来丰富自己的知识的能力。
参考文献:
[1] 侯俊杰著。深入浅出MFC 华中科技出版社
[2] 孙鑫著。VC++深入详解 电子工业出版社
参考网址&相关信息:www.751com.cn论文网等
相关工具:
[1] 代码分析工具:VC++ 6.0 及MSDN文档
[2] 流程图分析工具:Microsoft visio
[3] 测试工具FTP服务器: babyServer(个人FTP服务器)
上一页 [1] [2] [3] [4] [5] [6] [7]