windows程序设计实验报告.doc_第1页
windows程序设计实验报告.doc_第2页
windows程序设计实验报告.doc_第3页
windows程序设计实验报告.doc_第4页
windows程序设计实验报告.doc_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

姓 名: 学 号:030940125 学 科:计算机科学与技术 指导老师: 试验分数: Windows程序设计实验报告实验一 错误处理3 一、实验目的:3 二、实验过程:3 1、实验环境设置:3 2、实验实现过程:4 (a) 在对话框中建立如下控件:4 (b) 响应“查询”按钮函数:4 (c) 新建类class GetErrorInformation4 (d) 新建成员函数:TCHAR * GetErrorInformation:GetErrorString()5 三、实验核心代码:5 1、类class GetErrorInformation成员函数代码:5 2、查询函数:6 四、实验结果:6实验二 unicode实验7 一、实验目的7 二、实验过程7 三、实验核心代码81、Uchar类成员函数的实现:82、入口函数的实现:9 四、实验结果:10实验三 内核对象11 一、实验目的11 二、实验过程11 三、实验核心代码12 四、实验结果12实验四 系统进程控制14 一、实验目的14 二、实验过程14 三、实验核心代码14 1、启动进程14 2、退出进程15 3、进程目录15 四、 实验结果15实验五 线程实现17 一、实验目的17 二、实验过程17 三、实验核心代码18 四、实验结果19实验一 错误处理一实验目的:通过对windows代码的纠错处理,达到能检测所写代码的错误,以及系统运行的要求。熟悉纠错功能的运行过程。学会运用纠错功能。二,实验过程:1,实验环境设置:在visual C+ 6.0 中新建mfc工程,命名为dlgerror,完成进入编辑状态。2,实验实现过程:a ,在对话框中建立如下控件: b ,响应“查询”按钮函数:void CDlgErrorDlg:OnButtonLookup() 。C ,新建类class GetErrorInformation声明代码:private:HLOCAL m_hlocal; int m_iErrorCode;TCHAR *m_pcErrorInformation;public:GetErrorInformation();GetErrorInformation();void SetErrorCode(int ErrorCode);TCHAR * GetErrorString();protected:private:;d ,新建成员函数:TCHAR * GetErrorInformation:GetErrorString()三,实验核心代码:1,类class GetErrorInformation成员函数代码:TCHAR * GetErrorInformation:GetErrorString() / Get the error codes textual description BOOL fOk = FormatMessage( FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_ALLOCATE_BUFFER|FORMAT_MESSAGE_MAX_WIDTH_MASK, NULL, m_iErrorCode, MAKELANGID(LANG_CHINESE, UBLANG_ENGLISH_US), (PTSTR) &m_hlocal, 0, NULL); if (!fOk) / Is it a network-related error? HMODULE hDll = LoadLibraryEx(TEXT(netmsg.dll), NULL, DONT_RESOLVE_DLL_REFERENCES); if (hDll != NULL) FormatMessage( FORMAT_MESSAGE_FROM_HMODULE | FORMAT_MESSAGE_FROM_SYSTEM|FORMAT_MESSAGE_MAX_WIDTH_MASK, hDll, m_iErrorCode, MAKELANGID(LANG_CHINESE, SUBLANG_ENGLISH_US), (PTSTR) &m_hlocal, 0, NULL); FreeLibrary(hDll); if (m_hlocal!=NULL) m_pcErrorInformation = (char*)m_hlocal; else m_pcErrorInformation = (TCHAR *)malloc(60); TCHAR *charError = _TEXT(你所查找的错误代码不存在); strcpy(m_pcErrorInformation,charError); return m_pcErrorInformation; 2,查询函数:void CDlgErrorDlg:OnButtonLookup() / TODO: Add your control notification handler code hereint errorCode;GetErrorInformation gei;errorCode = GetDlgItemInt(IDC_EDIT_ERROR_CODE); gei.SetErrorCode(errorCode);SetDlgItemText(IDC_EDIT_DISPLAY,gei.GetErrorString();四,实验结果:实验二 unicode实验一,实验目的通过对unicode的操作理解数据编码;熟悉unicode的各种运算;了解unicode和ASCII的区别。二,实验过程1,新建win32控制台程序,命名Uchar。2,建立空工程。3,添加类Uchar的声明:class UCharfriend ostream &operator(ostream &os,UChar &uc)osuc.m_pUCharendl;osuc.m_Length(UChar uchar2);UINT Length();virtual UChar();protected:private:;4,实现unicode入口函数5,实现各个函数。三,实验核心代码1,Uchar类成员函数的实现:UChar:UChar()m_pUChar = NULL;m_Length = 0;UChar:UChar(const TCHAR *pChar)int iCLen; iCLen = lstrlen(pChar)+sizeof(TCHAR);m_Length = iCLen-sizeof(TCHAR);m_pUChar = (TCHAR *)malloc(iCLen*sizeof(TCHAR);lstrcpy(m_pUChar,pChar);UChar& UChar:operator+(UChar uchar2)int iCLen;LPTSTR pTem;iCLen = lstrlen(this-m_pUChar)+lstrlen(uchar2.m_pUChar)+sizeof(TCHAR);m_Length = iCLen-sizeof(TCHAR); pTem = (PTSTR)malloc(iCLen*sizeof(TCHAR);lstrcpy(pTem,this-m_pUChar);if (this-m_pUChar != NULL)free(this-m_pUChar);lstrcat(pTem,uchar2.m_pUChar);this-m_pUChar = pTem;return *this;UChar& UChar:operator=(const TCHAR * pStr2)int iCLen; iCLen = lstrlen(pStr2)+sizeof(TCHAR);m_Length = iCLen-sizeof(TCHAR);if (this-m_pUChar != NULL)free(this-m_pUChar);this-m_pUChar = (TCHAR *)malloc(iCLen);lstrcpy(this-m_pUChar,pStr2);return *this;UChar& UChar:operator=(UChar uchar2)int iCLen; iCLen = lstrlen(uchar2.m_pUChar)+sizeof(TCHAR);m_Length = iCLen-sizeof(TCHAR); if (this-m_pUChar != NULL)free(this-m_pUChar);m_pUChar = (TCHAR *)malloc(iCLen);lstrcpy(m_pUChar,uchar2.m_pUChar);return *this;BOOL UChar:operator(UChar uchar2)return lstrcmp(this-m_pUChar,uchar2.m_pUChar);UINT UChar:Length()return this-m_Length;UChar:UChar()if (m_pUChar!=NULL)free(m_pUChar);2,入口函数的实现:int main(int argc, char* argv)UChar u1(_TEXT(爸爸妈妈你们好吗!);UChar u2(_TEXT(爷爷奶奶你们好吗!);BOOL b;coutu1endl;coutu2endl;u1 = _TEXT(哥哥姐姐你们好吗!);u2 = _TEXT(叔叔伯伯你们好吗!); coutu1endl;coutu2u2;coutb = bendl;/u1+u2;coutu1 = u1endl;u1 = u2;coutu1 = u1Data1,pguid-Data2,pguid-Data3,pguid-Data40,pguid-Data41,pguid-Data42,pguid-Data43,pguid-Data44,pguid-Data45,pguid-Data46,pguid-Data47);m_eGuid.SetWindowText(strGUID);四,实验结果单击产生 结果如下:实验四 系统进程控制一,实验目的理解进程在系统中的作用;熟悉进程的工作方式;通过启动进程,熟悉进程的原理。二,实验过程1,启动VC6.0,创建基于对话框的MFC工程,命名process。2,设计对话框,如下图所示: 3,实现各个按钮三,实验核心代码1,启动进程void CProcessDlg:OnButtonStartProcess() / TODO: Add your control notification handler code hereBOOL ret;CString pathName;CString strFileFilter = 可执行文件|*.exe;CFileDialog dFileDlg(TRUE,exe,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT|OFN_PATHMUSTEXIST|OFN_FILEMUSTEXIST,strFileFilter);if (dFileDlg.DoModal()=IDOK)pathName = dFileDlg.GetPathName(); ret = m_MyProcess.CreateProcess(&pathName);if (!ret)MessageBox(进程创建失败);2,退出进程void CProcessDlg:OnButtonExitprocess() / TODO: Add your control notification handler code herem_MyProcess.ExitProcess(0);3,进程目录void CProcessDlg:OnButtonProcessDirectory() / TODO: Add your control notification handler code hereCString str;str = m_MyProcess.GetCurrentDirectory();m_directory.SetWindowText(str);4 实验结果1 ,运行后点击启动过程,启动需要启动的进程:1,在这里选择进程 editplus.exe,单击打开即可打开editplus软件。2,结果如下图:2 ,点击退出进程即可退出。3,点击进程目录就可知道当前打开的进程,效果如图:实验五 线程实现一,实验目的重点掌握线程函数的创建;理解多线程;通过学习,能自己运用多线程到实际的项目中。二,实验过程1,启动VC6.0创建基于对话框的MFC工程,命名MFThread .。2,进入编辑状态,设计对话框如图所示:3,编写头文件:PARAMSTRUCT.H#ifndef _THREADSTRUCT_H_#define _THREADSTRUCT_H_typedef struct _THREADSTRUCT int addParam1;int addParam2;int addResult;THREADSTRUCT ,*PTHREADSTRUCT;#endif4,实现函数功能。三,实验核心代码响应启动函数:void CMFCThreadDlg:OnButtonStartThread() / TODO: Add your control notification handler code herePTHREADSTRUCT pThreadParam = new THREADSTRUCT();CString str;GetDlgItem(IDC_EDIT_A)-GetWindowText(str);pThreadParam-addParam1 = atoi(str);GetDlgItem(ID

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论