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

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

相关文章

python版本切换工具pyenv的安装及用法

《python版本切换工具pyenv的安装及用法》Pyenv是管理Python版本的最佳工具之一,特别适合开发者和需要切换多个Python版本的用户,:本文主要介绍python版本切换工具pyen... 目录Pyenv 是什么?安装 Pyenv(MACOS)使用 Homebrew:配置 shell(zsh

MySQL中between and的基本用法、范围查询示例详解

《MySQL中betweenand的基本用法、范围查询示例详解》BETWEENAND操作符在MySQL中用于选择在两个值之间的数据,包括边界值,它支持数值和日期类型,示例展示了如何使用BETWEEN... 目录一、between and语法二、使用示例2.1、betwphpeen and数值查询2.2、be

MySQL快速复制一张表的四种核心方法(包括表结构和数据)

《MySQL快速复制一张表的四种核心方法(包括表结构和数据)》本文详细介绍了四种复制MySQL表(结构+数据)的方法,并对每种方法进行了对比分析,适用于不同场景和数据量的复制需求,特别是针对超大表(1... 目录一、mysql 复制表(结构+数据)的 4 种核心方法(面试结构化回答)方法 1:CREATE

Go语言实现桥接模式

《Go语言实现桥接模式》桥接模式是一种结构型设计模式,它将抽象部分与实现部分分离,使它们可以独立地变化,本文就来介绍一下了Go语言实现桥接模式,感兴趣的可以了解一下... 目录简介核心概念为什么使用桥接模式?应用场景案例分析步骤一:定义实现接口步骤二:创建具体实现类步骤三:定义抽象类步骤四:创建扩展抽象类步

Python+wxPython开发一个文件属性比对工具

《Python+wxPython开发一个文件属性比对工具》在日常的文件管理工作中,我们经常会遇到同一个文件存在多个版本,或者需要验证备份文件与源文件是否一致,下面我们就来看看如何使用wxPython模... 目录引言项目背景与需求应用场景核心需求运行结果技术选型程序设计界面布局核心功能模块关键代码解析文件大

MySQL基本表查询操作汇总之单表查询+多表操作大全

《MySQL基本表查询操作汇总之单表查询+多表操作大全》本文全面介绍了MySQL单表查询与多表操作的关键技术,包括基本语法、高级查询、表别名使用、多表连接及子查询等,并提供了丰富的实例,感兴趣的朋友跟... 目录一、单表查询整合(一)通用模版展示(二)举例说明(三)注意事项(四)Mapper简单举例简单查询

在C#中调用Windows防火墙界面的常见方式

《在C#中调用Windows防火墙界面的常见方式》在C#中调用Windows防火墙界面(基础设置或高级安全设置),可以使用进程启动(Process.Start)或Win32API来实现,所以本文给大家... 目录引言1. 直接启动防火墙界面(1) 打开基本防火墙设置(firewall.cpl)(2) 打开高

C++中的解释器模式实例详解

《C++中的解释器模式实例详解》这篇文章总结了C++标准库中的算法分类,还介绍了sort和stable_sort的区别,以及remove和erase的结合使用,结合实例代码给大家介绍的非常详细,感兴趣... 目录1、非修改序列算法1.1 find 和 find_if1.2 count 和 count_if1

Redis中群集三种模式的实现

《Redis中群集三种模式的实现》Redis群集有三种模式,分别是主从同步/复制、哨兵模式、Cluster,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1. Redis三种模式概述2、Redis 主从复制2.1 主从复制的作用2.2 主从复制流程2

深入理解MySQL流模式

《深入理解MySQL流模式》MySQL的Binlog流模式是一种实时读取二进制日志的技术,允许下游系统几乎无延迟地获取数据库变更事件,适用于需要极低延迟复制的场景,感兴趣的可以了解一下... 目录核心概念一句话总结1. 背景知识:什么是 Binlog?2. 传统方式 vs. 流模式传统文件方式 (非流式)流