• vs使用

    • C++项目中,Solution Explorer主要是逻辑视图(不对应文件的逻辑位置,没有文件夹只有Filter的概念。头文件源文件被自动分配到Header Files和Source Files下面);不像C#那样主要是物理视图,文件夹和文件通常对应物理位置
    • 工程目录的.cpp和.h文件通常在Include到工程后,会自动刷新到Solution Explorer中,然后可以自行放到想放的filter中
    • 如果.h文件在当前目录下,但是没有加入到工程中,此时在程序中又要包含该.h文件,那么,编译后,在工程中便产生了相应的External Dependencies文件夹,其中有该.h文件,也就是说成功把该.h文件添加到了工程中了??
  • build过程
    • 先编译,会用到Properties->Configuration Properties->C/C++中的配置

      • General->Additional Include Directories(头文件目录)
      • 一般vs能直接识别的函数调用错误等,都是缺少头文件导致的
    • 再链接,会用到Properties->Configuration Properties->Linker中的配置
      • General->Additional Library Directories(lib文件目录)
      • General->Input(lib文件名)
      • 即使使用的是动态库,也需要指定这些,因为不像C#的动态库那样自包含元数据,C++在使用动态库dll时还需要.h头文件和.lib文件
      • 一般build过程中,到了链接步骤才报的错,通常是链接时没有找到lib文件导致的
  • 内存使用
    • 关掉程序或者杀掉进程时,使用new分配的内存都会被回收
    • 程序中如果访问、使用了非法地址的内存(其他应用程序的内存),处于windows的保护机制,应用程序直接会挂掉
    • 对于new分配的内存,如果没有使用delete释放掉(或者通过Qt的对象树机制自动回收),那么也只是在程序运行期间可能会导致内存泄露,内存越用越多,在程序关闭或被杀掉进程后,也不会再占用内存。
  • MFC和Qt对比
  • 类定义
    • 通常把类的声明、成员函数的声明放在头文件中,在源文件中通过::运算符分别定义各个成员函数
    • 可以在源文件中分别定义各个成员函数,不像C#和Java那样要用大括号把所有的东西包起来(当然可以用反射的方式添加函数,C#也支持partial class)

C++&VS项目学习的更多相关文章

  1. 转:从开源项目学习 C 语言基本的编码规则

    从开源项目学习 C 语言基本的编码规则 每个项目都有自己的风格指南:一组有关怎样为那个项目编码约定.一些经理选择基本的编码规则,另一些经理则更偏好非常高级的规则,对许多项目而言则没有特定的编码规则,项 ...

  2. 中小研发团队架构实践之生产环境诊断工具WinDbg 三分钟学会.NET微服务之Polly 使用.Net Core+IView+Vue集成上传图片功能 Fiddler原理~知多少? ABP框架(asp.net core 2.X+Vue)模板项目学习之路(一) C#程序中设置全局代理(Global Proxy) WCF 4.0 使用说明 如何在IIS上发布,并能正常访问

    中小研发团队架构实践之生产环境诊断工具WinDbg 生产环境偶尔会出现一些异常问题,WinDbg或GDB是解决此类问题的利器.调试工具WinDbg如同医生的听诊器,是系统生病时做问题诊断的逆向分析工具 ...

  3. PHP项目学习——控件

    主要是在项目学习中总结的一些东西 动态效果 flashbar滚动条,增加动态效果,直接嵌入html中 <!--flash滚动条--> <object classid="cl ...

  4. PHP项目学习2

    通过<PHP项目学习1>基本上可以了解项目的大致结构.内容,现在直接从代码入手,开始coding吧. 现在部署环境中建立一个myonline的文件夹,便于放置我们的项目

  5. Spring Boot 项目学习 (四) Spring Boot整合Swagger2自动生成API文档

    0 引言 在做服务端开发的时候,难免会涉及到API 接口文档的编写,可以经历过手写API 文档的过程,就会发现,一个自动生成API文档可以提高多少的效率. 以下列举几个手写API 文档的痛点: 文档需 ...

  6. Spring Boot 项目学习 (三) Spring Boot + Redis 搭建

    0 引言 本文主要介绍 Spring Boot 中 Redis 的配置和基本使用. 1 配置 Redis 1. 修改pom.xml,添加Redis依赖 <!-- Spring Boot Redi ...

  7. Spring Boot 项目学习 (一) 项目搭建

    0 引言 本文主要记录借用Idea 开发环境下,搭建 Spring Boot 项目框架的过程. 1 系列文档目录 Spring Boot 项目学习 (一) 项目搭建 Spring Boot 项目学习 ...

  8. Spring Boot 项目学习 (二) MySql + MyBatis 注解 + 分页控件 配置

    0 引言 本文主要在Spring Boot 基础项目的基础上,添加 Mysql .MyBatis(注解方式)与 分页控件 的配置,用于协助完成数据库操作. 1 创建数据表 这个过程就暂时省略了. 2 ...

  9. 优秀的github项目学习

    优秀的github项目学习 后期会陆续添加遇到的优秀项目 https://github.com/chaijunkun

  10. YCSB项目学习

    主要总结Yahoo的数据库测试项目YCSB的使用(针对redis). github网址:https://github.com/brianfrankcooper/YCSB 需要安装 java maven ...

随机推荐

  1. umbraco

    在任意页面获取根节点 var locale = CurrentPage.Site(); 遍历根节点 @foreach (var module in CurrentPage.Site().Childre ...

  2. DAVINCI开发原理

    本文中约定: [host] 表示主机PC机Linux [target] 表示目标板Linux DAVINCI开发原理之一----ARM端开发环境的建立(DVEVM) 1. 对DAVINCI平台,TI在 ...

  3. MySQL数据库篇之完整性约束和表关系

    主要内容: 一.完整性约束 二.表关系 1️⃣ 完整性约束 (1)何为完整性约束? 约束条件与数据类型的宽度一样,都是可选参数. 作用:用于保证数据的完整性和一致性 (2)分类主要有以下五类: 1.n ...

  4. swarmkit test

    swarmd -d /tmp/node-1 --listen-control-api /tmp/node-1/swarm.sock --hostname mhc --engine-addr=tcp:/ ...

  5. Perl 变量:哈希变量

    Perl 哈希变量哈希是 key/value 对的集合.Perl中哈希变量以百分号 (%) 标记开始.访问哈希元素格式:${key}. 1.创建哈希创建哈希可以通过以下两种方式: 1.为每个 key ...

  6. render组件

    [render组件] Render继承于Component. It contians general functionality for all renderers. A renderer is wh ...

  7. mysql的my.ini配置文件

    第一步,我们找到mysql安装文件下面的my.ini文件,打开可以看到第一句: # MySQL Server Instance Configuration File Mysql服务实例配置文件 好,咱 ...

  8. make: *** No rule to make target `build', needed by `default'. Stop.

    [root@xx nginx-1.8.0]# makemake: *** No rule to make target `build', needed by `default'.  Stop. [ro ...

  9. 7-set用法详解

    C++中set用法详解 转载 http://blog.csdn.net/yas12345678/article/details/52601454 C++ / set 更详细见:http://www.c ...

  10. Python简单邮件发送源码

    环境: Python27 主要代码: # -*- coding: utf-8 -*- ''' Created on 2016年10月18日 @author: xuxianglin ''' import ...