在VC++中有两种方法可以进行串口通讯。一种是利用Microsoft公司提供的ActiveX控件Microsoft Communications Control。另一种是直接用VC++访问串口。下面将简述这两种方法。
Windows的注册表中包含了Windows的系统配置、PC机的硬件配置、Win32应用程序和用户的其他设置信息。注册表和INI文件不同,它是多层次的树状数据结构,具有六个分支(根键),每个分支又由许多的键和键值组成,而每个键则代表一个特定的配置项目。在注册表中键可以包括子键和值。我们可以对他做个比喻,键就是目录,而子键和值可以看成文件,这样比喻可能不科学但是很实际。在Windows 98下注册表包括在两个文件内,他们是user.dat和system.dat两个文件。
本文从分析windows扫雷游戏的功能特点开始,应用面向对象的可视化编程语言visual c++给出了个功能模块的具体实现方法,并提供了编写小游戏程序的一般方法和Visual C++的一些使用技巧。
语言进行改进和扩充,将“类”的概念引入了C语言,构成了最早的C++语言(1983年)。后来,Stroustrup和他的同事们又为C++引进了运算符重载、引用、虚函数等许多特性,并使之更加精炼,于 1989年推出了AT&T C++2.0版。随后美国国家标准协会ANSI(AmeriCan National Standard Institute)和国际标准化组织ISO(International Standards Organization)一起进行了标准化工作,并于1998年正式发布了C++语言的国际标准ISO/IEC:98—14882C++支持面向对象的程序设计方法,特别适合于中型和大型的软件开发项目,从开发时间、费用到软件的重用性、可扩充性、可维护性和可靠性等方面,C++均具有很大的优越性。同时,C++又是C语言的一个超集,这就使得许多C代码不经修改就可被C++编译器编译通过。C++基本上可以运行在所有的平台上,并且有无数的应用程序都是用C++实现的。无论你正在实现什么、你的目标平台是什么,你都可能碰到其他的研发人员已经解决很多年的那些共同的问题。本书就是用来解决这些共同的问题,并对每一个解决方案进行了解释。<br> 本书的结构非常简单明了,基本上每一节都是由一个问题描述和一个代码解决方案组成,并且紧跟着是一个讨论。从本书中,你一定能找到那些正让你束手无策的问题的解决方案。
第一章C++概述C++语言发展历史自从1946年第一台电子数字计算机ENIAC问世以来,随着计算机应用领域的不断扩大,促进了计算机技术的高速发展,尤其是近年来计算机的硬件和软件都是日新月异。作为应用计算机的一种工具—程序设计语言,得到不断的充实和完善。每年都有新的程序设计语言问世,老的程序设计语言不断地更新换代。20世纪60年代,MartinRichards为计算机软件人员在开发系统软件时,作为记述语言使用而开发了BCPL语言(BasicCombinedProgrammingLanguage)。1970年,KenThompson在继承BCPL语言的许多优点的基础上发明了实用的B语言。到了1972年,贝尔实验室的DennisRitchie和Briankernighan在B语言的基础上,作了进一步的充实和完善,设计出了C语言。当时,设计C语言是为了编写UNIX操作系统的。以后,C语言经过多次改进,并开始流行。C++是在C语言的基础上发展和完善的,而C是吸收了其它语言的优点逐步成为实用性很强的语言。
虚函数表对C++了解的人都应该知道虚函数(VirtualFunction)是通过一张虚函数表(VirtualTable)来实现的。简称为V-Table。在这个表中,主是要一个类的虚函数的地址表,这张表解决了继承、覆盖的问题,保证其容真实反应实际的函数。这样,在有虚函数的类的实例中这个表被分配在了这个实例的内存中,所以,当我们用父类的指针来操作一个子类的时候,这张虚函数表就显得由为重要了,它就像一个地图一样,指明了实际所应该调用的函数。这里我们着重看一下这张虚函数表。在C++的标准规格说明书中说到,编译器必需要保证虚函数表的指针存在于对象实例中最前面的位置(这是为了保证正确取到虚函数的偏移量)。
发布之前先申明两点:1所有资料来自网络,本人只是收集和转发。 2所有问题解答(尤其是代码)只是参考,不保证正确。先发基本问题,再发编程问题..1.static变量和static函数各有什么特点?3.描述一下嵌入式基于ROM的运行方式基于ram的运行方式有什么区别。4.task有几种状态?就绪、挂起、阻塞、睡眠、运行5.task有几种通讯方式?共享内存、信号量、消息队列和管道、socket6.C函数允许重入吗?函数的重入和不可重入是和函数本省有关的,例如一个字符串拷贝的函数就是可重入的,而一个在函数中调用了I/O,分配内存是就可能是不重入的,是否重入要看调用的库函数是否重入的.
1.new、delete、malloc、free关系delete会调用对象的析构函数,和new对应free只会释放内存,new调用构造函数。malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数的任务强加于malloc/free。
对比于C语言的函数,C++增加了重载(overloaded)、内联(inline)、const和virtual四种新机制。其中重载和内联机制既可用于全局函数也可用于类的成员函数,const与virtual机制仅用于类的成员函数。重载和内联肯定有其好处才会被C++语言采纳,但是不可以当成免费的午餐而滥用。本章将探究重载和内联的优点与局限性,说明什么情况下应该采用、不该采用以及要警惕错用。
★笔试题大全★1.static有什么用途?(请至少说明两种)1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。2)在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。3)在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用2.引用与指针有什么区别?1)引用必须被初始化,指针不必。
很早想说说这个问题了,经常也会有很多公司拿位域出来考人,呵呵要真的想弄清楚还要一点点的分析。这里先看看网宿的一道笔试题目,这道题目我之前是复制网上的,结果不对,修改了一下,可以正确运行了,谢谢(imafish_i)提醒.
C语言经典例题最近学C的不少,我有些资料,希望对初学C的有点帮助!经典C语言编程100例【程序1】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。
Visual C++作为一个功能非常强大的可视化应用程序开发工具,是计算机界公认的最优秀的应用开发工具之一。Microsoft的基本类库MFC使得开发Windows应用程序比以往任何时候都要容易。本光盘教学软件的目的就是为了让你学会在Visual C++环境下,利用微软的基本类库MFC开发出功能强大的Windows应用程序。在本章节的内容当中,我们将向您介绍使用VC开发软件需要用到的一些基本概念,使用MFC进行编程的基本特点,以及VISUAL C++集成开发环境提供的一系列编程辅助工具——WIZARD的使用方法。
注意即使是 built-in type(内建类型),我还是更喜欢将整数 x 看作一个 "object",某些人将 "object" 这个名字保留给 user-defined type(用户定义类型),但我不是他们中的一员。再有就是注意函数 numDigits 的返回类型是 std::size_t,也就是说,namespace(命名空间)std 中的 size_t 类型。这个 namespace(命名空间)是 C++ 标准库中每一样东西实际所在的地方。但是,因为 C 标准库(严谨地说,来自于 C89)在 C++ 中也能使用,从 C 继承来的符号(诸如 size_t)可能存在于全局范围,或 std 内部,或两者都有,这依赖于哪一个头文件被 #include。在本书中,我假设 C++ 头文件被 #include,这也就是为什么我用 std::size_t 代替 size_t 的原因。当文字讨论中涉及到标准库组件时,我一般不再提及 std,这依赖于你认可类似 size_t,vector,以及 cout 之类的东西都在 std 中,在示例代码中,我总是包含 std,因为真正的代码没有它将无法编译。
当读者有一定c/c++基础推荐的阅读顺序:level1从《essential c++》开始,短小精悍,可以对c++能进一步了解其特性以《c++ primer》作字典和课外读物,因为太厚不可能一口气看完level2然后从《effective c++》开始转职,这是圣经,请遵守10诫,要经常看
Visual C++是美国Microsoft公司推出的4GL软件开发工具,目前已成为国内应用最广泛的高级程序设计语言之一,最新版本为5.0版。同其他软件开发工具相比,Visual C++具有以下优点:<br> 面向对象、可视化开发:提供了面向对象的应用程序框架MFC(Microsoft Foundation Class:微软基础类库),大大简化了程序员的编程工作,提高了模块的可重用性。Visual C++还提供了基于CASE技术的可视化软件自动生成和维护工具AppWizard、ClassWizard、Visual Studio、WizardBar等,帮助用户直观的、可视地设计程序的用户界面,可以方便的编写和管理各种类,维护程序源代码,从而提高了开发效率。用户可以简单而容易地使用C/C++编程。<br> 众多的开发商支持以及业已成为工业标准的MFC类库:MFC类库已经成为事实上的工业标准类库,得到了众多开发商和软件开发工具的支持;另外,由于众多的开发商都采用Visual C++进行软件开发,这样用Visual C++开发的程序就与别的应用软件有许多相似之处,易于学习和使用。
socket接口是TCP/IP网络的API,socket接口定义了许多函数或例程,程序员可以用它们来开发TCP/IP网络上的应用程序。要学Internet上的TCP/IP网络编程,必须理解socket接口。socket接口设计者最先是将接口放在Unix操作系统里面的。如果了解Unix系统的输入和输出的话,就很容易了解socket了。网络的socket数据传输是一种特殊的I/O,socket也是一种文件描述符。socket也具有一个类似于打开文件的函数调用socket(),该函数返回一个整型的socket描述符,随后的连接建立、数据传输等操作都是通过该socket实现的。
C++语言程序设计从C到C++C++80年代由贝尔实验室的BjarneStroustrup开发C++是强类型语言,对类型检查更严格C++比C更丰富支持面向对象支持泛型编程支持异常运算符重载等C++之父给C程序员的建议在C++中几乎不需要用宏用const或enum定义明显的常量,用inline避免函数调用的额外开销,用模板去刻画一族函数或类型,用namespace去避免命名冲突不要在你需要变量之前去声明,以保证你能立即对它进行初始化。不要用malloc,new运算会做的更好避免使用void*、指针算术、联合和强制,大多数情况下,强制都是设计错误的指示器。尽量少用数组和C风格的字符串,标准库中的string和vector可以简化程序更加重要的是,试着将程序考虑为一组由类和对象表示的相互作用的概念,而不是一堆数据结构和一些去拨弄二进制一些基本区别g++编译器源程序扩展名。
本章主要内容基本数据类型的初始化单个对象内存的动态分配与释放对象数组内存的动态分配与释放使用new和delete在空闲存储区中存储字符串多维数组内存的动态分配与释放15:29:07*/51内存分配:静态与动态静态内存分配:编译器在处理程序源代码时(即编译时)分配。动态内存分配:程序执行时调用运行时刻库函数来分配。静态与动态内存分配的三个主要区别:静态对象是有名字的变量,我们直接对其进行操作。而动态对象是没有名字的变量,我们通过指针间接地对它进行操作。静态对象的分配与释放由编译器自动处理。
第四章指针与引用本章主要内容数组的概念一维数组的声明和使用一维数组的存储顺序一维数组的初始化二维数组的声明和使用二维数组的初始化数组作为函数参数对象数组指针变量的定义、初始化指针运算指针数组指向对象的指针、字符串指针引用变量向对象传递引用、返回引用引用与指针的关系引用的常用方法数组的概念数组是具有一定顺序关系的若干相同类型变量的集合体,组成数组的变量称为该数组的元素。数组属于构造类型。