VisualC基础教程.ppt_第1页
VisualC基础教程.ppt_第2页
VisualC基础教程.ppt_第3页
VisualC基础教程.ppt_第4页
VisualC基础教程.ppt_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

Visual C+ 开发基础,Visual C+是如何诞生的? C语言和C+语言是如何诞生的? C语言和C+语言究竟有什么关系? C语言、C+语言和Java语言、C#语言有什么关系?,几个与历史有关的问题,最适用的语言才是最好的语言,高级程序设计语言的发展历史,B. Stroustrup,J. Gosling,A. Hejlsberg,三个影响历史的关键人物,C语言来自与B语言,B语言是BCPL语言的简化,而BCPL语言又简化自CPL语言 C语言的发明者是贝尔实验室的D. Ritchie 1978年有了以K&RC语言程序设计一书为代表的非官方标准。K&R指的是B. Kernighan和D. Ritchie 1989年ANSI颁布了ANSI版的C语言标准,即C89 1999年,ISO/ANSI发布了C语言的最新标准,即C99 直到今天,C语言仍然是一种年轻的和不断进步的语言,仍然是具有最强的系统描述能力的语言,C语言的演化,1979年,C+语言的雏形,CPre诞生,这种语言也叫“带类的C” 1983年底,C+得名 1984年拥有了非官方的标准C84 1989年非官方标准演化成带标注的C+参考手册,即著名的ARM C+语言的官方标准直到1998年9月才正式发布。在国际标准化组织(ISO)的档案库里,C+标准的代号是 ISO/IEC 14882:1998 C+是一中多范例的语言 C+并不是100%和C语言保持兼容,丹麦人B. Stroustrup说:“C+是一种通用程序设计语言,其设计目的就是为了使真正的程序员更多地感受到编程的快乐。”,C+语言的演化,一门完整的程序设计语言必须具备的要素,#include #include #include using namespace std; void main() string s; cout s; cout d; cout setw(20) setprecision(2) setiosflags( ios:fixed ) d endl; ,一个使用C+ Standard Library的C+程序例子,程序中的数据究竟存储在什么位置? 下面这些数据的存储位置相同吗? 全局变量 局部变量 动态分配的变量空间 什么是虚拟存储空间? 什么是线性地址? 什么是内存交换文件?,几个问题,计算机是处理数据的自动机。 程序运行时,数据的存储位置有3个: 静态存储区、堆、栈,数据的存储位置,class X public: int m; ; class Y public: int n; void foo(int n) for(int i = 0; i n = n; ;,Y yes; void main() Y* no = new Y(); yes.foo(10); no-foo(20); delete no; ,一个使用了静态存储、堆和栈的C+程序例子,什么是编译? 什么是连接? 为什么要编译和连接?,几个问题,C+代码的编译和连接,Visual C+来源于Microsoft C/C+ 目前Visual C+的最新版本是Visual Studio .NET 7.0中的Visual C+ .NET 7.0 实际开发中常用到Visual Studio 6.0中的Visual C+ 6.0( Visual Studio 6.0最新的Service Pack版本是SP5) Visual C+中的用户界面和基本概念 解决方案(Workspace) 项目(Project) 生成(Make) 编译(Build) 编译方式(Build Type/Build Configuration) 项目设置(Project Setting): 编译/连接/调试选项,Visual C+ 简介,演示Visual C+开发控制台程序的方法 扼要演示Visual C+开发静态连接库的方法 扼要演示Visual C+开发动态连接库的方法,用Visual C+开发控制台程序,WIN 32GUI程序的要素 进程 线程 窗口 资源 窗口类 窗口属性 窗口函数 消息 消息队列 消息处理 对话框,WIN32是基于DLL的运行环境 kernel32.dll user32.dll gdi32.dll 演示Microsoft Depends的用法,什么是WIN32环境?什么是GUI程序?,演示Visual C+资源编辑器的用法 DIALOG ICON MENU BITMAP STRING VERSION,消息:由一个消息ID,一个wParam(32位)参数和一个lParam(32位)参数组成 typedef struct tagMSG msg HWND hwnd; UINT message; WPARAM wParam; LPARAM lParam; DWORD time; POINT pt; MSG; 消息分类 消息队列 消息循环 消息和线程的关系,WIN32窗口系统的核心:消息管理,演示Microsoft Spy+的用法 Processes List Threads List Windows List Window Class Properties Message Logging,基本的WIN32程序包含两个主要函数,WinMain和WndProc: WinMain函数 注册窗口类 创建窗口 显示窗口 消息循环 WndProc回调函数 处理消息 未处理消息传给DefWindowProc,开发一个简单的WIN32窗口程序,主消息循环代码的写法 while(GetMessage( ,#include WinMain() / Instance / WNDCLASS ; / CreateWindow(); / Main Message Loop WndProc() / switch() / WM_CREATE / WM_PAINT / WM_SIZE / WM_CLOSE / WM_DESTROY ,DeviceContext PaintDC MemoryDC GDIObject: Pen Brush Drawing Functions: ,开发一个简单的WIN32窗口程序,User Inputs Mouse Events Keyboard Events Focus,Child Windows 在WM_CREATE消息中创建子窗口 创建一个包含图形元素的子窗口 创建一个按钮子窗口 WM_SIZE的处理 WM_PAINT的处理 WM_CLOSE的处理 WM_DESTROY的处理,WIN32 Controls Static Edit Button RadioButton CheckBox List ComboBox Progress ScollBars,开发一个简单的WIN32窗口程序,#include WinMain() / DialogBox(); DialogProc() / switch() / WM_INITDIALOG / EndDialog(); ,Dialog 模式对话框 无模式对话框,开发一个简单的WIN32对话框程序,MFC是Microsoft提供的类库,包含了以下功能 用户界面开发(对话框,单窗口和多窗口) 基本文件I/O 数据库开发 网络编程(TCP/IP, FTP, Internet) OLE支持(OLE容器,客户端,复合文档) ActiveX支持(用户控件、自动化对象) 容器类(数据结构、基本算法) 调试、跟踪、测试支持,什么是MFC?,MFC的类结构:CObject是其中最基本的类,向导生成的是源代码的框架,MFC的应用程序向导,使用Visual C+提供的ClassWizard工具(该工具的使用方式在Visual Studio .NET中略有变化) 在ClassWizard中添加消息处理过程 在ClassWizard中添加新类 使用Visual C+ 提供的类视图工具,使用MFC开发对话框程序,演示ClassWizard的用法 新建类 添加类成员 类的继承关系 多态、重载的实现 消息处理 控件-变量对应关系,CWinApp类 CDialog类 CFrameWnd类 虚函数的作用:重新实现CDialog或CWnd的特性 消息循环在MFC中的实现: BEGIN_MESSAGE_MAP(CTttDlg, CDialog) /AFX_MSG_MAP(CTttDlg) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() ON_EN_CHANGE(IDC_EDIT1, OnChangeEdit1) /AFX_MSG_MAP END_MESSAGE_MAP(),理解MFC生成的框架代码的结构,Visual C+的文档-视结构,使用MFC开发窗口程序,Visual C+的文档-视结构 4个关键类: CDocTemplate、CDocument、CFrameWnd、CView CSingleDocTemplate* pDocTemplate; pDocTemplate = new CSingleDocTemplate( IDR_MAINFRAME, RUNTIME_CLASS(CTttDoc), RUNTIME_CLASS(CMainFrame), RUNTIME_CLASS(CTttView); AddDocTemplate(pDocTemplate); CCommandLineInfo cmdInfo; ParseCommandLine(cmdInfo); if (!ProcessShellCommand(cmdInfo) return FALSE;,使用MFC开发窗口程序,MFC下图形对象、控件的用法,OnDraw() 使用CPaintDC和CDC CPen CBrush CFont ,CMenu CButton CProgressCtrl CListBox CListView/CListCtrl CTreeView/CTreeCtrl ,管理文档-视结构,CDoucment: OnNewDocument() OnOpenDocument() Serialize() UpdateAllViews() IsModified() SetModifiedFlag(),CView: PreCreateWindow() OnDraw() GetDocument() OnUpdate(),CFrameWnd: GetActiveFrame() GetActiveView() GetActiveDocument() LoadFrame(),使用Visual C+开发数据库访问程序,访问数据库的不同方式 数据库软件本身的接口API 嵌入式C语言代码 ODBC DAO RDO ADO(面向对象的ODBC) .NET类库中的数据库访问模块 Visual C+中支持ODBC的类是CDatabase系列 支持DAO的是CDaoDatabase系列 支持ADO的办法是使用ActiveX自动化对象,基于网络连接的数据库访问基础,数据库服务 Database Server,服务端交易环境 (数据库脚本语言): 存储过程/触发器/外部存储过程 T-SQL in SQL Server, PL/SQL in Oracle,操作系统 OS,服务端通信模块,客户端通信模块,公共数据库接口 ODBC, ADO, ,特定数据库接口 DB Library in SQL Server, Pro C/OCI in Oracle,应用程序开发接口 MFC, VB Controls, ,应用程序,网络连接,网络通信技术概览,基于消息的通信技术 UDP、TCP、COM、Named Pipes 消息队列:MQ 基于成熟应用

温馨提示

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

评论

0/150

提交评论