一、工具简介、基本界面和编程模式(包括命名法则)

2024-06-17 00:18

本文主要是介绍一、工具简介、基本界面和编程模式(包括命名法则),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.   VS2008工具栏的调整:

       a. 在菜单栏(就是有文件、编辑等选项的一行)或者工具栏(菜单栏下面一行)的空白位置右键即可自由添加(也可以选择自定义);

       b. VC++6.0调整工具栏的方式和VS2008相同,这不过添加之后都是以浮动窗口的形式显示,关闭后还是可以用相同的方式进行添加;

      

2.   VS2008集成环境中视图窗口的调整:

       a. 菜单栏中点击视图(View)即可选择需要添加的视图窗口;

       b. 一般需要添加比较重要的“资源视图”窗口,可以观察工作空间中的各个文件;


3.   将VC++6.0的程序转化到VS2008中的方法:

       a. 转化的障碍就是6.0编写的使用的都是多字节字符集,而VS2008使用的都是Unicode字符集;

       b. 在用VS2008打开一个VC++6.0编写的工程后,在菜单栏的项目中选择属性,然后在属性对话框中选择配置属性,再选择常规,将字符集设置成多字节字符集即可;


4.   VC++2008相对于VC++6.0的一些重要改进:

       a. 参数有效性检查:对于一些容易出错(特别容易越界)的函数的参数进行检查,比如strcpy函数,在2008中就会检查其参数(数组)是否会越界,如果会越界,则会警告(方法是设定一个非法参数导致警告);

       b. 迭代器越界检查:如果迭代器发生越界则会通过一个非法参数发出警告;

       c. 新增time_t类型:过去一直使用long类型表示系统时间(从1970年到某个时间的秒数),现在已经使用64位来表示时间了(即time_t类型),可以表示从1970年到3000年之间的时间了;

       d. for循环参数作用范围的约束:将其作用范围约束到for循环内而不像以前,其作用域是在for循环外的;


5.   打开功能介绍(在菜单来中的文件选项中):

       a. VC++6.0中的“打开”可以打开任何文件,而打开工作空间只能打开.dsw和.dsp文件;

       b. VS2008中的“打开”选项中还有多个选项可供选择,其中“打开文件”可以打开任何文件,而“打开项目/解决方案”只能打开.vcproj和.sln文件;


6.   类视图中各个图标的含义:

      a. 三个方格子代表类;

      b. 带锁的表示private的,带钥匙的表示protected的,什么都不带的表示public的;

      c. 一个红方格子表示成员函数;

      d. 一个白方格子表示成员变量;

      f.  一个方格子和b.结合起来表示public成员函数等;


7.   Windows编程模式简介:

       a. 模式主要有两种:

            *1. SDK编程,直接使用SDK函数进行编程,API函数大概有几千个,需要程序员记忆较多的函数,比较麻烦;

            *2. 包装SDK编程,将SDK函数包装进类中,再利用这些编写好的进行编程,最著名的就是MFC编程了,比SDK编程方便、容易很多;

       b. 大型程序一般使用MFC编程,而一些小型、简单程序使用SDK编程(包括Win32应用程序和Win32控制台应用程序);


8.   一个简单的Win32应用程序简介:

      a. 建立工程的时候选择Win32 Application即可,在step 1 of 1中选择“一个简单的Win32应用程序即可”;

      b. stdafx:

           i.   即Stadard Application Frame Extend的缩写,即标准应用程序框架扩展;

           ii.  StdAfx.h中已经包含了所有的Windows SDK的API接口,基本都在windows.h之类的文件中,而StdAfx.h就包含了这些头文件;

           iii. 用户使用规则就是将所有自己在程序中需要用到的头文件也都一并包含在StdAfx.h中,并且必须在所有.cpp文件中包含该头文件;

           iv. 因为所有SDK API的声明经过编译后将会非常庞大,因此为了节省空间和编译时间,通常是先编译StdAfx.h中的内容,方法就是将该头文件包含在StdAfx.cpp文件中,然后在编译其它文件之前先编译StdAfx.cpp文件,之后再编译其它文件时就不用再编译其中包含的StdAfx.h中的内容了,这样可以大大减少编译时间和空间,这个方法是Borland公司先想出来的,并且StdAfx.cpp在创建工程时就已经自动创建好了,里面就只有一句话:#include "StdAfx.h"

           v.  由于Windows SDK非常庞大和繁杂,因此StdAfx.cpp编译后生成的文件也必定是整个工程中最大的文件,其编译生成的文件是.pch文件,在编译其它文件时都会参考该文件,从而使编译速度提高,而不需要在每个文件中都编译一遍StdAfx.h中的内容;

           vi. 由于.pch文件仅仅是编译时的一个辅助文件,因此当工程编译完毕后可以删除该文件以流出更多的空间;

        注:由于Win32 Application不是控制台应用程序,在其中使用printf等控制台输入输出函数将不起作用,因为它是图形用户界面的!!!


9.   创建一个简单的单文档MFC应用程序:

       a. 创建工程的时候选择MFC AppWizard[exe],在step 1中选择单文档,其余都为默认选项;

       b. 生成文件简介:

            i.   只介绍其中三个最重要的文件;

            ii.  .dsp文件:工程文件;

            iii. .dsw文件:工作区文件;

            iv.  .rc文件:资源脚本文件;

            v.  这三个文件不能删除,也不能用文本编辑器打开(一旦打开就会受损);

            vi. 除这三个文件以外的其它文件,除了.cpp、.h文件,其余都可以删除,仅仅都是一些辅助文件;


10.  匈牙利命名法则:

         a. 是微软公司的通用命名法则;

         b. 由微软著名开发员查尔斯西蒙尼提出,由于其国际是匈牙利,因此该命名法称为匈牙利命名法;

         c. 法则内容:

              i.   标示符(包括函数和变量),都以小写字母或者单词缩写打头,用于表示类型,比如m_wndToolBar中的m_表示成员变量,wnd表示窗口类型;

              ii.  i.描述的是前缀,而前缀后面的是一个或多个以大写字母打头的单词,用以表示用途,上例中ToolBar表示其用途是工具条;

         d. 简单举例:int iX,中i表示int型变量,X表示用途或者就是一般意义上的变量名;

         e. 常用前缀:i→int,c→char,f→float,h→handle(句柄)、m_→成员变量、wnd→窗口等等;

这篇关于一、工具简介、基本界面和编程模式(包括命名法则)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1067954

相关文章

Linux系统配置NAT网络模式的详细步骤(附图文)

《Linux系统配置NAT网络模式的详细步骤(附图文)》本文详细指导如何在VMware环境下配置NAT网络模式,包括设置主机和虚拟机的IP地址、网关,以及针对Linux和Windows系统的具体步骤,... 目录一、配置NAT网络模式二、设置虚拟机交换机网关2.1 打开虚拟机2.2 管理员授权2.3 设置子

揭秘Python Socket网络编程的7种硬核用法

《揭秘PythonSocket网络编程的7种硬核用法》Socket不仅能做聊天室,还能干一大堆硬核操作,这篇文章就带大家看看Python网络编程的7种超实用玩法,感兴趣的小伙伴可以跟随小编一起... 目录1.端口扫描器:探测开放端口2.简易 HTTP 服务器:10 秒搭个网页3.局域网游戏:多人联机对战4.

用js控制视频播放进度基本示例代码

《用js控制视频播放进度基本示例代码》写前端的时候,很多的时候是需要支持要网页视频播放的功能,下面这篇文章主要给大家介绍了关于用js控制视频播放进度的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言html部分:JavaScript部分:注意:总结前言在javascript中控制视频播放

Java并发编程必备之Synchronized关键字深入解析

《Java并发编程必备之Synchronized关键字深入解析》本文我们深入探索了Java中的Synchronized关键字,包括其互斥性和可重入性的特性,文章详细介绍了Synchronized的三种... 目录一、前言二、Synchronized关键字2.1 Synchronized的特性1. 互斥2.

Python基于wxPython和FFmpeg开发一个视频标签工具

《Python基于wxPython和FFmpeg开发一个视频标签工具》在当今数字媒体时代,视频内容的管理和标记变得越来越重要,无论是研究人员需要对实验视频进行时间点标记,还是个人用户希望对家庭视频进行... 目录引言1. 应用概述2. 技术栈分析2.1 核心库和模块2.2 wxpython作为GUI选择的优

使用Java实现通用树形结构构建工具类

《使用Java实现通用树形结构构建工具类》这篇文章主要为大家详细介绍了如何使用Java实现通用树形结构构建工具类,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录完整代码一、设计思想与核心功能二、核心实现原理1. 数据结构准备阶段2. 循环依赖检测算法3. 树形结构构建4. 搜索子

利用Python开发Markdown表格结构转换为Excel工具

《利用Python开发Markdown表格结构转换为Excel工具》在数据管理和文档编写过程中,我们经常使用Markdown来记录表格数据,但它没有Excel使用方便,所以本文将使用Python编写一... 目录1.完整代码2. 项目概述3. 代码解析3.1 依赖库3.2 GUI 设计3.3 解析 Mark

SpringBoot如何通过Map实现策略模式

《SpringBoot如何通过Map实现策略模式》策略模式是一种行为设计模式,它允许在运行时选择算法的行为,在Spring框架中,我们可以利用@Resource注解和Map集合来优雅地实现策略模式,这... 目录前言底层机制解析Spring的集合类型自动装配@Resource注解的行为实现原理使用直接使用M

利用Go语言开发文件操作工具轻松处理所有文件

《利用Go语言开发文件操作工具轻松处理所有文件》在后端开发中,文件操作是一个非常常见但又容易出错的场景,本文小编要向大家介绍一个强大的Go语言文件操作工具库,它能帮你轻松处理各种文件操作场景... 目录为什么需要这个工具?核心功能详解1. 文件/目录存javascript在性检查2. 批量创建目录3. 文件

Python异步编程中asyncio.gather的并发控制详解

《Python异步编程中asyncio.gather的并发控制详解》在Python异步编程生态中,asyncio.gather是并发任务调度的核心工具,本文将通过实际场景和代码示例,展示如何结合信号量... 目录一、asyncio.gather的原始行为解析二、信号量控制法:给并发装上"节流阀"三、进阶控制