• 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. ListView 中 的 分页

     Django Pagination 简单分页 当博客上发布的文章越来越多时,通常需要进行分页显示,以免所有的文章都堆积在一个页面,影响用户体验.Django 内置的 Pagination 能够帮助我 ...

  2. nextcloud 安装

    nextcloud 优化 设置php.ini vim /etc/php/7.0/apache2/php.ini 添加以下代码: opcache.enable= opcache.enable_cli= ...

  3. 漂亮的表格样式–>使用CSS样式表控制表格样式

    依照WEB2.0风格,设计了几个表格样式,希望大家喜欢.WEB2.0提倡使用div开布局,但不是要完全放弃使用表格,表格在数据展现方面还是不错的选择.现在介绍使用CSS样式表来控制.美化表格的方法. ...

  4. 数组和集合(四)、Map集合的使用总结

    一.概述 键值对,无序 键唯一.值不唯一 只允许存在一个Key为null元素 二.实现类 1. HashMap · 无序,数组+链表+红黑树 · 非线程安全 2. LinkedHashMap · 有序 ...

  5. SMTPSenderRefused: (530, ‘5.5.1 Authentication Required. Learn more at \n5.5.1

    在跟着<Flask Web开发:基于Python的Web应用开发实战>一书学习时,出现了以上错误提示. 问题出于第11章--博客文章.当运行 python manage.py runser ...

  6. iOS导航栏自由缩放头像效果

    效果图: 上代码: 先给一个self.navigationItem.titleView ,然后再放个ImangeView添加到titleView上: UIView *titleView = [[UIV ...

  7. linux系统/proc/stat信息与top的cup信息的联系及区别

    一. /proc 目录 Linux系统上的/proc目录是一种文件系统,即proc文件系统,与其它常见的文件系统不同的是,/proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间.它以文 ...

  8. 从计算框架MapReduce看Hadoop1.0和2.0的区别

    一.1.0版本 主要由两部分组成:编程模型和运行时环境. 编程模型为用户提供易用的编程接口,用户只需编写串行程序实现函数来实现一个分布式程序,其他如节点间的通信.节点失效,数据切分等,则由运行时环境完 ...

  9. CecOS Virtualization

    CecOS CecOS 是 OPENFANS 为中小型企业提供企业开源云计算解决方案的基础框架:CecOSvt 是一款运行在社区企业云操作系统(CecOS)上的虚拟化开放式解决方案. 也可用演示模式. ...

  10. Python tkinter 副窗体置顶和取消置顶

    root = Tk() #置顶root.wm_attributes('-topmost',1) #取消置顶 root.wm_attributes('-topmost',0)