×

windows程序设计 程序设计 程序

windows程序设计(WINDOWS程序设计很难看不懂怎么办)

admin admin 发表于2023-06-30 14:32:05 浏览68 评论0

抢沙发发表评论

本文目录

WINDOWS程序设计很难看不懂怎么办

第一个hello world跟着调试个一两天其实很正常。这东西入门比较难我看的也是这本书。要说缺什么必备知识,应该说不是“编程语言”那个级别的,而是“设计思想”那个级别的:以前都是你控制整个程序的运行过程,而现在改变了,变得更接近windows控制整个程序的运行过程。它替你完成许多事,你只要在它有些事情不知道怎么做的时候跟它说怎么做(回调函数)而已。c语言有用过函数指针吗,有把函数指针当作函数参数去调用某个函数这样的东西操作过吗?这是一个必备知识。总之最难的应该是观念的转变,windows写界面的那一套已经不是按你的代码一步步走那么简单了,很多操作是windows内部完成,比如你看那个GetMessage函数,你一调用这个函数就不知道windows里面到底在干什么了,等到函数返回你已经拿到“消息”了。你鼠标点了窗口上的什么按钮,windows就会生成对应的消息;你鼠标移动到什么窗口,windows就会生成对应的消息;你输入了什么文字按了什么按键,windows就会生成相应的消息。而你要做的事情,就是处理这些消息而已。

简述windows应用程序设计的基本步骤

计算机程序设计基本步骤:  (1)创建界面。程序的界面必须在一开始就设计好,否则在后期将很难进行修改。因此,是使用Windows提供的默认皮肤(见图1)还是自己编写皮肤,需要最早进行构思。注意:如果是一个整体的软件,需要先进行软件功能设置。  (2)设置属性。这个是通用的方法,作用和“创建程序界面”差不多,基本方法就是“属性窗口、代码(对象名称.属性名称=属性值)”。  (3)编写代码。完成程序理论设计之后,就开始编写程序代码了,具体代码与程序本身有关。  (4)保存工程。设计完毕之后首先需要把工程保存下来,最好是每一次修改都保存源工程和修改后的工程,以便日后在遇到错误时快速恢复。  (5)测试程序。完成修改之后要及时测试,发现已有的问题,创建了可执行程序之后就很难再修改了。  (6)创建可执行程序(脚本)。完成工程之后就可以创建出一个可执行程序(或脚本)了。此时计算机程序已经设计完毕。

Windows程序设计与C语言的主要区别是什么

一、主体不同

1、Windows程序设计:基于MFC类库进行的程序开发设计。

2、C语言:是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。

二、特点不同

1、Windows程序设计:以C++类的形式封装了Windows API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。

2、C语言:仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性。

三、优缺点不同

1、Windows程序设计:包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类。专心的考虑程序的逻辑,而不是这些每次编程都要重复的东西,但是由于是通用框架,没有最好的针对性。

2、C语言:依靠非常全面的运算符和多样的数据类型,可以轻易完成各种数据结构的构建,通过指针类型更可对内存直接寻址以及对硬件进行直接操作,因此既能够用于开发系统程序,也可用于开发应用软件。

参考资料来源:百度百科-c语言

参考资料来源:百度百科-MFC

windows程序设计第5版中一个程序的疑问

这是个结构数组,并对数组执行初始化。相当于多次调用

struct{int iIndex ; TCHAR * szLabel ;TCHAR * szDesc ;}devcaps={HORZSIZE,TEXT (“HORZSIZE“),TEXT (“Width in millimeters:“),};

WINDOWS程序设计的特点是什么

一、事件驱动的程序设计1\传统的MS-DOS程序主要采用顺序的、关联的、过程驱动的程序设计方法。一个程序是一系列预先定义好的操作序列的组合,它具有一定的开头、中间过程和结束。程序直接控制程序事件和过程的顺序。这样的程序设计方法是面向程序而不是面向用户的,交互性差,用户界面不够友好,因为它强迫用户按照某种不可更改的模式进行工作。2\事件驱动程序设计是一种全新的程序设计方法,它不是由事件的顺序来控制,而是由事件的发生来控制,而这种事件的发生是随机的、不确定的,并没有预定的顺序,这样就允许程序的的用户用各种合理的顺序来安排程序的流程。对于需要用户交互的应用程序来说,事件驱动的程序设计有着过程驱动方法无法替代的优点。它是一种面向用户的程序设计方法,它在程序设计过程中除了完成所需功能之外,更多的考虑了用户可能的各种输入,并针对性的设计相应的处理程序。它是一种“被动”式程序设计方法,程序开始运行时,处于等待用户输入事件状态,然后取得事件并作出相应反应,处理完毕又返回并处于等待事件状态。 二、 消息循环与输入事件驱动围绕着消息的产生与处理展开,一条消息是关于发生的事件的消息。事件驱动是靠消息循环机制来实现的。消息是一种报告有关事件发生的通知。消息类似于DOS下的用户输入,但比DOS的输入来源要广,Windows应用程序的消息来源有以下四种: (1)输入消息:包括键盘和鼠标的输入。----------这一类消息首先放在系统消息队列中,然后由Windows将它们送入应用程序消息队列中,由应用程序来处理消息。 (2)控制消息:用来与Windows的控制对象,如列表框、按钮、检查框等进行双向通信。当用户在列表框中改动当前选择或改变了检查框的状态时发出此类消息。这类消息一般不经过应用程序消息队列,而是直接发送到控制对象上去。 (3)系统消息:对程序化的事件或系统时钟中断作出反应。一些系统消息,象DDE消息(动态数据交换消息)要通过Windows的系统消息队列,而有的则不通过系统消息队列而直接送入应用程序的消息队列,如创建窗口消息。 (4)用户消息:这是程序员自己定义并在应用程序中主动发出的,一般由应用程序的某一部分内部处理。Windows操作系统包括三个内核基本元件:GDI, KERNEL ,USER。其中GDI(图形设备接口)负责在屏幕上绘制像素、打印硬拷贝输出,绘制用户界面包括窗口、菜单、对话框等。系统内核KERNEL支持与操作系统密切相关的功能:如进程加载,文本切换、文件I/O,以及内存管理、线程管理等。USER为所有的用户界面对象提供支持,它用于接收和管理所有输入消息、系统消息并把它们发给相应的窗口的消息队列。消息队列是一个系统定义的内存块,用于临时存储消息;或是把消息直接发给窗口过程。每个窗口维护自己的消息队列,并从中取出消息,利用窗口函数进行处理。三、图形输出Windows程序不仅在输入上与DOS程序不同,而且在程序输出上也与DOS有着很大不同,主要表现为:1.DOS程序独占整个显示屏幕,其他程序在后台等待。2.Windows程序的所有输出都是图形。3.Windows下的输出是设备无关的。-------Windows下的应用程序使用图形设备接口(GDI)来进行图形输出。GDI屏蔽了不同设备的差异,提供了设备无关的图形输出能力,Windows应用程序只要发出设备无关的GDI请求(如调用Rectangle画一个矩形),由GDI去完成实际的图形输出操作。对于一台具有打印矩形功能的PostScript打印机来说,GDI可能只需要将矩形数据传给驱动程序就可以了,然后由驱动程序产生PostScript命令绘制出相应的矩形;而对于一台没有矩形输出功能的点阵打印机来说,GDI可能需要将矩形转化为四条线,然后向驱动程序发出画线的指令,在打印机上输出矩形。四、GDI(图形设备接口)介绍:GDI提供两种基本服务:创建图形输出和存储图象。GDI提供了大量用于图形输出的函数,这些函数接收应用程序发出来的绘图请求、处理绘图数据并根据当前使用设备调用相应的设备驱动程序产生绘图输出。这些绘图函数分为三类:一是文字输出,二是矢量图形函数,用于画线、圆等几何图形,三是光栅(位图)图形函数,用于绘制位图。GDI识别四种类型的设备:显示屏幕、硬拷贝设备(打印机、绘图机)、位图和图元文件。 前两者是物理设备,后两者是伪设备。 一个伪设备提供了一种在RAM里或磁盘里存储图象的方法。 位图存放的是图形的点位信息,占用较多的内存,但速度很快;图元文件保存的是GDI函数的调用和调用参数,占用内存较少,但依赖于GDI,因此不可能用某个设备来创建图元文件,而且速度比位图要慢。GDI的图形输出是面向窗口的,面向窗口包含两层含义: (1)每个窗口作为一个独立的绘图接口来处理,有它自己的绘图坐标。当程序在一个窗口中绘图时,首先建立缺省的绘图坐标,原点(0,0)位于窗口用户区的左上角。每个窗口必须独立的维护自己的输出。 (2)绘图仅对于本窗口有效,图形在窗口边界会被自动裁剪,也就是说窗口中的每一个图形都不会越出边界。即使想越出边界,也是不可能的,窗口会自动的防止其他窗口传过来的任何像素。这样,你在窗口内绘图时,就不必担心会偶然覆盖其他程序的窗口,从而保证了Windows下同时运行多个任务时各个窗口的独立性。五、资源共享对于DOS程序来说,它运行时独占系统的全部资源,包括显示器、内存等,在程序结束时才释放资源。而Windows是一个多任务的操作系统,各个应用程序共享系统提供的资源,常见的资源包括:设备上下文,画刷,画笔,字体,对话框控制,对话框,图标,定时器,插入符号,通信端口,电话线等。 Windows要求应用程序必须以一种能允许它共享Windows资源的方式进行设计,它的基本模式是这样的:1.向Windows系统请求资源;2.使用该资源;3.释放该资源给Windows以供别的程序使用。 即使最有经验的Windows程序员也常常会忽略第三步。如果忽略了这一步,轻则当时不出错,但过一会儿出现程序运行出现异常情况,或干扰别的程序正常运行;重则立即死机,比如设备上下文没有释放时。 在Windows应用程序设计中,CPU也是一种非常重要的资源,因此应用程序应当避免长时间的占用CPU资源(如一个特别长的循环);如果确实需要这样做,也应当采取一些措施,以让程序能够响应用户的输入。主存也是一个共享资源,要防止同时运行的多个应用程序因协调不好而耗尽内存资源。 应用程序一般不要直接访问内存或其他硬件设备,如键盘、鼠标、计数器、屏幕或串口、并口等。Windows系统要求绝对控制这些资源,以保证向所有的应用程序提供公平的不中断的运行。如果确实要访问串并口,应当使用通过Windows提供的函数来安全的访问。六、Windows程序的组成编写一个典型的Windows应用程序,一般需要: 1.C,CPP源程序文件:源程序文件包含了应用程序的数据、类、功能逻辑模块(包括事件处理、用户界面对象初始化以及一些辅助例程)的定义。 2.H,HPP头文件:头文件包含了CPP、C源文件中所有数据、模块、类的声明。当一个CPP、C源文件要调用另一个CPP、C中所定义的模块功能时,需要包含那个CPP、C文件对应的头文件。 3.资源文件:包含了应用程序所使用的全部资源定义,通常以.RC为后缀名。这里的资源是应用程序所能够使用的一类预定义工具中的一个对象,包括:字符串资源、加速键表、对话框、菜单、位图、光标、工具条、图标、版本信息和用户自定义资源等。在DOS程序设计过程中,所有的界面设计工作都在源程序中完成。而在Windows程序设计过程中,象菜单、对话框、位图等可视的对象被单独分离出来加以定义,并存放在资源源文件中,然后由资源编译程序编译为应用程序所能使用的对象的映象。资源编译使应用程序可以读取对象的二进制映象和具体数据结构,这样可以减轻为创建复杂对象所需要得程序设计工作。程序员在资源文件中定义应用程序所需使用的资源,资源编译程序编译这些资源并将它们存储于应用程序的可执行文件或动态连接库中。七、程序中引用资源的好处:1.降低内存需求:当应用程序运行时,资源并不随应用程序一起装入内存,而是在应用程序实际用到这些资源时才装入内存。在资源装入内存时,它们拥有自己的数据段,而不驻留于应用程序数据段中;当内存紧张时,可以废弃这些资源,使其占用的内存空间供他用,而当应用程序用到这些资源时才自动装入,这种方式降低了应用程序的内存需求,使一次可运行更多的程序,这也是Windows内存管理的优点之一。 2.便于统一管理和重复利用:将位图、图标、字符串等按资源文件方式组织便于统一管理和重用。比如,将所有的错误信息放到资源文件里,利用一个函数就可以负责错误提示输出,非常方便。如果在应用程序中要多次用到一个代表公司的徽标位图,就可以将它存放在资源文件中,每次用到时再从资源文件中装入。这种方式比将位图放在一个外部文件更加简单有效。 3.应用程序与界面有一定的独立性,有利于软件的国际化:由于资源文件独立于应用程序设计,使得在修改资源文件时(如调整对话框大小、对话框控制位置),可以不修改源程序,从而简化了用户界面的设计。另外,目前所提供的资源设计工具一般都是采用“所见即所得”方式,这样就可以更加直观、可视的设计应用程序界面。由于资源文件的独立性,软件国际化工作也非常容易。比如,现在开发了一个英文版的应用程序,要想把它汉化,只需要修改资源文件,将其中的对话框、菜单、字符串资源等汉化即可,而无需直接修改源程序。但是,应用程序资源只是定义了资源的外观和组织,而不是其功能特性。例如,一个对话框资源,可以改变对话框的安排和外观,但是却没有也不可能改变应用程序响应对话框控制的方式。外观的改变可以通过资源来实现,而功能的改变却只能通过改变应用程序的源代码,然后重新编译来实现。C、CPP编译器将C源程序编译成目标程序,然后使用连接程序将所有的目标程序(包括各种库)连接在一起,生成可执行程序。在制作Windows应用程序时,编译器还要为引出函数生成正确的入口和出口代码。 连接程序生成的可执行文件还不能在Windows环境下运行,必须使用资源编译器对其进行处理。资源编译器对可执行文件的处理是这样的:如果该程序有资源描述文件,它就把已编译为二进制数据的资源加入到可执行文件中;否则,仅对该可执行文件进行相容性标识。应用程序必需经过资源编译器处理才可以在Windows环境下运行。八、结构化程序设计和面向对象的程序设计面向对象技术是目前流行的系统设计开发技术,它包括面向对象分析和面向对象程序设计。面向对象程序设计技术的提出,主要是为了解决传统程序设计方法——结构化程序设计所不能解决的代码重用问题。 结构化程序设计从系统的功能入手,按照工程的标准和严格的规范将系统分解为若干功能模块,系统是“实现模块功能的函数和过程“的集合。由于用户的需求和软、硬件技术的不断发展变化,按照功能划分设计的系统模块必然是易变的和不稳定的。这样开发出来的模块可重用性不高。 面向对象程序设计从所处理的数据入手,以数据为中心而不是以服务(功能)为中心来描述系统。它把编程问题视为一个数据集合,数据相对于功能而言,具有更强的稳定性。 面向对象程序设计同结构化程序设计相比最大的区别就在于:前者首先关心的是所要处理的数据,而后者首先关心的是功能。面向对象程序设计是一种围绕真实世界的概念来组织模型的程序设计方法,它采用对象来描述问题空间的实体。一般的认为,对象是包含现实世界物体特征的抽象实体,它反映了系统为之保存信息和(或)与它交互的能力。它是一些属性及服务的一个封装体,在程序设计领域,可以用“对象=数据+作用于这些数据上的操作”这一公式来表达。“类“是具有相同操作功能和相同的数据格式(属性)的对象的集合。类可以看作抽象数据类型的具体实现。数据类型是指数据的集合和作用于其上的操作的集合,而抽象数据类型不关心操作实现的细节。从外部看,类型的行为可以用新定义的操作加以规定。类为对象集合的抽象,它规定了这些对象的公共属性和方法;对象为类的一个实例。苹果是一个类,而放在桌上的那个苹果则是一个对象。对象和类的关系相当于一般的程序设计语言中变量和变量类型的关系。 消息是向某“对象“请求服务的一种表达方式。对象内有方法和数据,外部的用户或对象对该对象提出的服务请求,可以称为向该对象发送消息。 “合作“是指两个对象之间共同承担责任和分工。 在Windows中,程序的基本单位不是过程和函数,而是窗口。一个窗口是一组数据的集合和处理这些数据的方法和窗口函数。从面向对象的角度来看,窗口本身就是一个对象。Windows程序的执行过程本身就是窗口和其他对象的创建、处理和消亡过程。Windows中的消息的发送可以理解为一个窗口对象向别的窗口对象请求对象的服务过程。因此,用面向对象方法来进行Windows程序的设计与开发是极其方便的和自然的。 这是我转别人的 看的有用请加分

请介绍一下windows程序设计有哪几种主要干什么

Windows API Windows 这个多作业系统除了协调应用程序的执行、分配内存、管理资源…之外, 她同时也是一个很大的服务中心,调用这个服务中心的各种服务(每一种服务就是一个函数),可以帮应用程式达到开启视窗、描绘图形、使用周边设备等目的,由于这些函数服务的对象是应用程序(Application), 所以便称之为 Application Programming Interface,简称 API 函数。WIN32 API也就是Microsoft Windows 32位平台的应用程序编程接口。 MFC ,微软基础类( Microsoft Foundation Classes ),实际上是微软提供的,用于在 C++ 环境下编写应用程序的一个框架和引擎, VC++ 是 WinDOS 下开发人员使用的专业 C++ SDK ( SDK,Standard SoftWare Develop Kit,专业软件开发平台 ),MFC就是挂在它之上的一个辅助软件开发包,MFC作为与VC++血肉相连的部分,用C++开发软件用的最多的应该就是他了! 用VC编写Windows程序有两种:1. Windows c方式(SDK),2. C++方式:即对SDK函数进行包装,如VC的MFC,BCB的VCL等。SDK编程就是直接调用Windows的API进行编程,平时人们常说“用SDK写程序“就是指用Windows的API函数来写程序,API由上千个API函数组成(Win95的API有两千多个)。而MFC是API的封闭,结合面向对象程序设计的继承性和多态性组成一个个的“类“,共由一百多个类组成。尽管MFC比SDK方便,但要深入VC,直接去学MFC却是不明智的选择。只有在熟悉了MFC的运行机制的情况下,才有可能深入下去。所以学VC最好是先学用SDK编写程序,在此期间掌握Windows操作系统的工作原理和各API函数的应用,然后再深入MFC。 数据结构的基础就是离散数学,想自学离散数学的话,不知道你的数学怎么样,如果数学好的话,要自学离散数学的话估计不会太难,但是跟数据结构结合起来的话就比较难了!

精通Windows API-函数、接口、编程实例和windows程序设计第五版

WIN5 是对WINDOWS 编程入门不可多得的书。认真学完那本,就对WINDOWS 编程大概框架熟悉了。《精通 WINDOWS API***》顾名思义,就是讲了些API,可以用做来提高。其实在你懂了编程框架以后,所有的东西,都可以从MSDN里面找到。

《windows程序设计第五版》过时了吗

没有,C++现在还在用其实程序语言是不会过时的尤其是这种最基础的语言学的时候去体会那个简洁性很复杂的一个问题能用几行代码就表达出来的但是你的书过时了现在你那个太老了

windows程序设计是学啥的我们学校的这门课怎么都在讲控件呢

学的主要是理解Windows的消息驱动机制,控件比较简单,一般都是从窗口类派生的,而窗口是Windows的核心,要想彻底理解控件,更高层的理解Windwos程序设计,必须从Windows的消息机制学起,不然你永远也理解不了那些控件的工作原理,更别说自己开发控件。学校开Windows程序设计只讲控件,主要是为了减轻教学难度,再说彻底点,老师的水平不行,如果老师的Windows开发做的好,还需要做老师?那个公司招Windows开发的年薪不达几十万。所以学习还是要靠你自己,别指望老师,那样才能超越那些做老师的。

windows程序设计

windows 编程就是编译的程序可以在windows环境下运行 可以用的语言很多了,如VB,VC,Delphi,java,C#等等,很多编程软件要调用系统的API函数,MFC,微软基础类(Microsoft Foundation Classes),同VCL(delphi的库)类似,是一种Application Framework,随微软Visual C++ 开发工具发布。