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

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

相关文章

C#连接SQL server数据库命令的基本步骤

《C#连接SQLserver数据库命令的基本步骤》文章讲解了连接SQLServer数据库的步骤,包括引入命名空间、构建连接字符串、使用SqlConnection和SqlCommand执行SQL操作,... 目录建议配合使用:如何下载和安装SQL server数据库-CSDN博客1. 引入必要的命名空间2.

Python办公自动化实战之打造智能邮件发送工具

《Python办公自动化实战之打造智能邮件发送工具》在数字化办公场景中,邮件自动化是提升工作效率的关键技能,本文将演示如何使用Python的smtplib和email库构建一个支持图文混排,多附件,多... 目录前言一、基础配置:搭建邮件发送框架1.1 邮箱服务准备1.2 核心库导入1.3 基础发送函数二、

Java中的数组与集合基本用法详解

《Java中的数组与集合基本用法详解》本文介绍了Java数组和集合框架的基础知识,数组部分涵盖了一维、二维及多维数组的声明、初始化、访问与遍历方法,以及Arrays类的常用操作,对Java数组与集合相... 目录一、Java数组基础1.1 数组结构概述1.2 一维数组1.2.1 声明与初始化1.2.2 访问

基于Python实现一个图片拆分工具

《基于Python实现一个图片拆分工具》这篇文章主要为大家详细介绍了如何基于Python实现一个图片拆分工具,可以根据需要的行数和列数进行拆分,感兴趣的小伙伴可以跟随小编一起学习一下... 简单介绍先自己选择输入的图片,默认是输出到项目文件夹中,可以自己选择其他的文件夹,选择需要拆分的行数和列数,可以通过

Python使用pip工具实现包自动更新的多种方法

《Python使用pip工具实现包自动更新的多种方法》本文深入探讨了使用Python的pip工具实现包自动更新的各种方法和技术,我们将从基础概念开始,逐步介绍手动更新方法、自动化脚本编写、结合CI/C... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核

Python使用OpenCV实现获取视频时长的小工具

《Python使用OpenCV实现获取视频时长的小工具》在处理视频数据时,获取视频的时长是一项常见且基础的需求,本文将详细介绍如何使用Python和OpenCV获取视频时长,并对每一行代码进行深入解析... 目录一、代码实现二、代码解析1. 导入 OpenCV 库2. 定义获取视频时长的函数3. 打开视频文

Linux中压缩、网络传输与系统监控工具的使用完整指南

《Linux中压缩、网络传输与系统监控工具的使用完整指南》在Linux系统管理中,压缩与传输工具是数据备份和远程协作的桥梁,而系统监控工具则是保障服务器稳定运行的眼睛,下面小编就来和大家详细介绍一下它... 目录引言一、压缩与解压:数据存储与传输的优化核心1. zip/unzip:通用压缩格式的便捷操作2.

Qt QCustomPlot库简介(最新推荐)

《QtQCustomPlot库简介(最新推荐)》QCustomPlot是一款基于Qt的高性能C++绘图库,专为二维数据可视化设计,它具有轻量级、实时处理百万级数据和多图层支持等特点,适用于科学计算、... 目录核心特性概览核心组件解析1.绘图核心 (QCustomPlot类)2.数据容器 (QCPDataC

Java设计模式---迭代器模式(Iterator)解读

《Java设计模式---迭代器模式(Iterator)解读》:本文主要介绍Java设计模式---迭代器模式(Iterator),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录1、迭代器(Iterator)1.1、结构1.2、常用方法1.3、本质1、解耦集合与遍历逻辑2、统一

Java 线程安全与 volatile与单例模式问题及解决方案

《Java线程安全与volatile与单例模式问题及解决方案》文章主要讲解线程安全问题的五个成因(调度随机、变量修改、非原子操作、内存可见性、指令重排序)及解决方案,强调使用volatile关键字... 目录什么是线程安全线程安全问题的产生与解决方案线程的调度是随机的多个线程对同一个变量进行修改线程的修改操