C++6.0实现音频文件播放功能设计毕业论文

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第1页共31页目录摘要…………………………………………………………………引言…………………………………………………………………第一章绪论…………………………………………………………1、VisualC++程序系统设计简介……………………………§1.1visualc++的组织文件,工程和工作区……………………§1.2MFC编程特点…………………………………………§1.3使用AppWizard…………………………………………§1.4VC程序调试……………………………………………第二章音频基础知识………………………………………………1、多媒体中的音频处理技术………………………………………2、乐器数字接口MIDI的概念………………………………………3、常见的声音文件格式……………………………………………第三章设计思想………………………………………………………1、设计思路…………………………………………………2、系统结构功能…………………………………………………第四章音频播放器的程序设计过程…………………………………1、高层音频服务媒体控制接口MCI……………………………2、系统模块窗体的设置………………………………………第五章结束语………………………………………………………致谢…………………………………………………………………参考文献………………………………………………………第2页共31页第一章绪论1、VisualC++程序系统设计简介VisualC++作为一个功能非常强大的可视化应用程序开发工具,是计算机界公认的最优秀的应用开发工具之一。VisualC++提供了一个支持可视化编程的集成开发环境:VisualStudio(又名DeveloperStudio)。DeveloperStudio是一个通用的应用程序集成开发环境,它不仅支持VisualC++,还支持VisualBasic,VisualJ++,VisualInterDev等Microsoft系列开发工具。DeveloperStudio包含了一个文本编辑器、资源编辑器、工程编译工具、一个增量连接器、源代码浏览器、集成调试工具,以及一套联机文档。使用DeveloperStudio,可以完成创建、调试、修改应用程序等的各种操作。可视化技术和CASE技术研究的深入为我们带来了支持可视化编程特性的第三代开发工具,这一代开发工具有:VisualBasic,VisualC++,BorlandC++Builder,Delphi和用于数据库开发的PowerBuilder、VisualFoxpro等等。其中,VisualC++是美国Microsoft公司推出的4GL软件开发工具,目前已成为国内应用最广泛的高级程序设计语言之一。同其他软件开发工具相比,VisualC++具有以下优点:面向对象、可视化开发:提供了面向对象的应用程序框架MFC(MicrosoftFoundationClass:微软基础类库),大大简化了程序员的编程工作,提高了模块的可重用性。VisualC++还提供了基于CASE技术的可视化软件自动生成和维护工具AppWizard、ClassWizard、VisualStudio、WizardBar等,帮助用户直观的、可视地设计程序的用户界面,可以方便的编写和管理各种类,维护程序源代码,从而提高了开发效率。用户可以简单而容易地使用C/C++编程。众多的开发商支持以及业已成为工业标准的MFC类库:MFC类库已经成为事实上的工业标准类库,得到了众多开发商和软件开发工具的支持;另外,由于众多的开发商都采用VisualC++进行软件开发,这样用VisualC++开发的程序就与别的应用软件有许多相似之处,易于学习和使用。VisualC++封装了Windows的API(应用程序接口)函数、USER、KERNEL、GDI函数,帮助我们弄清了许多函数的组织方法,隐去了创建、维护窗口的许多复杂的例行工作,简化了编程。第3页共31页§1.1visualc++的组织文件、工程和工作区VisualC++作为一种程序设计语言,它同时也是一个集成开发工具,提供了软件代码自动生成和可视化的资源编辑功能。在使用VisualC++开发应用程序的过程中,系统为我们生成了大量的各种类型的文件。项目工作区是一个包含用户的所有相关项目和配置的实体。工程定义为一个配置和一组文件,用以生成最终的程序或二进制文件。一个项目工作区可以包含多个工程,这些工程既可以是同一类型的工程,也可以是由不同类型的工程(如VisualC++和VisualJ++工程)。工作区现在以.dsw为后缀名(以前为.mdp),项目文件现在以.dsp(以前为.mak)为后缀名。DeveloperStudio提供了一个简单的对话框,用以创建项目工作区、工程、文件和其他文档。在创建工程时,可以指定一个新的项目工作区来包含它;或把新工程加入到当前打开的工作区中。在创建一个文件时,可以同时把它加入到工程中,也可以将现存的文件、文档加入到工程中。首先要介绍的是扩展名为dsw的文件类型,这种类型的文件在VC中是级别最高的,称为Workspace文件。在VC中,应用程序是以Project的形式存在的,Project文件以.dsp扩展名,在Workspace文件中可以包含多个Project,由Workspace文件对它们进行统一的协调和管理。与dsw类型的Workspace文件相配合的一个重要的文件类型是以opt为扩展名的文件,这个文件中包含的是在Workspace文件中要用到的本地计算机的有关配置信息,所以这个文件不能在不同的计算机上共享,当我们打开一个Workspace文件时,如果系统找不到需要的opt类型文件,就会自动地创建一个与之配合的包含本地计算机信息的opt文件。上面提到Project文件的扩展名是dsp,这个文件中存放的是一个特定的工程,也就是特定的应用程序的有关信息,每个工程都对应有一个dsp类型的文件。以clw为扩展名的文件是用来存放应用程序中用到的类和资源的信息的,这些信息是VC中的ClassWizard工具管理和使用类的信息来源。对应每个应用程序有一个readme.txt文件,这个文件中列出了应用程序中用到的所有的文件的信息,打开并查看其中的内容就可以对应用程序的文件结构有一个基本的认识。在应用程序中大量应用的是以h和cpp为扩展名的文件,以h为扩展名的文件称为头文件。以cpp为扩展名的文件称为实现文件,一般说来h为扩展名的文件与cpp为扩展名的文件是一一对应配合使用的,在h为扩展名的文件中包含的主要是类的定义,而在cpp为扩展名的文件中包含的主要是类成员函数的实现代码。第4页共31页在应用程序中经常要使用一些位图、菜单之类的资源,VC中以rc为扩展名的文件称为资源文件,其中包含了应用程序中用到的所有的windows资源,要指出的一点是rc文件可以直接在VC集成环境中以可视化的方法进行编辑和修改。§1.2MFC编程特点MFC的英文全称是MicrosoftFundationClasses,即微软的基本类库,MFC的本质就是一个包含了许多微软公司已经定义好的对象的类库。我们知道,虽然我们要编写的程序在功能上是千差万别的,但从本质上来讲,都可以化归为用户界面的设计,对文件的操作,多媒体的使用,数据库的访问等等一些最主要的方面。这一点正是微软提供MFC类库最重要的原因,在这个类库中包含了一百多个程序开发过程中最常用到的对象。⒈MFC类库概念和组成类库是一个可以在应用中使用的相互关联的C++类的集合。有些类库随编译器提供,如BorlandC++TurboVision等;有的是由其他软件公司销售,如用于数据库开发的CodeBase;有的则是由用户自己开发的。比如图象处理类库完成图象显示、格式转换、量化等;串行通信类库用于支持串行口输入输出。有些情况下用户可以直接利用类库中包含的类定义应用程序所需的变量,有时则需要从类库所提供的类中派生出新的类,这依赖于类库的设计和具体的应用程序。Microsoft提供了一个基础类库MFC,其中包含用来开发C++和C++Windows应用程序的一组类。基础类库的核心是以C++形式封装了大部分的WindowsAPI。类库表示窗口、对话框、设备上下文、公共GDI对象如画笔、调色板、控制框和其他标准的Windows部件。这些类提供了一个面向Windows中结构的简单的C++成员函数的接口。在进行程序设计的时候,如果类库中的某个对象能完成所需要的功能,这时我们只要简单地调用已有对象的方法就可以了。我们还可以利用面向对象技术中很重要的“继承”方法从类库中的已有对象派生出我们自己的对象,这时派生出来的对象除了具有类库中的对象的特性和功能之外,还可以由我们自己根据需要加上所需的特性和方法,产生一个更专门的,功能更为强大的对象。当然,你也可以在程序中创建全新的对象,并根据需要不断完善对象的功能。完全支持Windows所有的函数、控件、消息、GDI基本图形函数,菜单及对话框。类的设计以及同API函数的结合相当合理。第5页共31页⒉MFC对消息的管理Windows消息的管理包括消息发送和处理。为了支持消息发送机制,MFC提供了三个函数:SendMessage、PostMessage和SendDlgItemMessage。而消息处理则相对来说显得复杂一些。MFC采用了一种新的机制取代C语言编程时对Windows消息的Switch/Case分支,简化了Windows编程,使程序可读性、可维护性大大提高。使用与传统的WindowsAPI同样的命名规则。进行消息处理时,不使用易产生错误switch/case语句,所有消息映射到类的成员函数,这种直接消息到方法的映射对所有的消息都适用。它通过宏来实现消息到成员函数的映射,而且这些函数不必是虚拟的成员函数,这样不需要为消息映射函数生成一个很大的虚拟函数表(V表),节省内存。通过发送有关对象信息到文件的能力提供更好的判定支持,也可确认成员变量。支持异常错误的处理,减少了程序出错的机会。运行时确定数据对象的类型。这允许实例化时动态操作各域。有较少的代码和较快的速度。MFC库只增加了少于40k的目标代码,效率只比传统的CWindows程序低5%。可以利用与MFC紧密结合的AppWizard和ClassWizard等工具快速开发出功能强大的应用程序。另外,在使用MFC时还允许混合使用传统的函数调用。MFC类库在提供的对象的各种属性和方法都是经过谨慎的编写和严格的测试,可靠性很高,这就保证了使用MFC类库不会影响程序的可靠性和正确性。§1.3使用AppWizardVisualC++是一种功能强大的通用程序设计语言,它提供了各种向导和工具帮助我们来实现所需的功能,在一定程度上实现了软件的自动生成和可视化编程。下面就为你介绍VC集成环境中几个最主要的开发工具的使用方法。首先要介绍的是Appwizard(如图1)工具,这个工具的作用是帮助我们一步步地生成一个新的应用程序,并且自动生成应用程序所需的基本代码。图1第6页共31页§1.4VC程序调试在VC中每当建立一个工程(Project)时,VC都会自动建立两个版本:Release版本,和Debug版本,正如其字面意思所说的,Release版本是当程序完成后,准备发行时用来编译的版本,而Debug版本是用在开发过程中进行调试时所用的版本。DEBUG版本当中,包含着MICROSOFT格式的调试信息,不进行任何代码优化,而在RELEASE版本对可执行程序的二进制代码进行了优化,但是其中不包含任何的调试信息。调试,说到底就是在程序的运行过程的某一阶段观测程序的状态,而在一般情况下程序是连续运行的,所以我们必须使程序在某一地点停下来。所以我们所做的第一项工作就是设立断点。其次,再运行程序,当程序在设立断点处停下来时,再利用各种工具观察程序的状态。程序在断点停下来后,有时需要按要求控制程序的运行,以进一步观测程序的流向。为了更快更好地开发程序,我们还需要利用更高级的调试工具。在利

1 / 31
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功