VS2015调用动态链接库文件 1.VS安装Qt插件操作步骤:工具 -> 扩展和更新 -> 联机 -> 搜索Qt -> 下载Qt Visual Studio Tools(QtPackage可装可不装) -> 安装 -> 立即重新启动重新启动完成,会发现VS工具栏多了一个选项“Qt VS Tools”2.新建工程新建一个工程,也可以使用QtCreator新建一个工程,然后选择Open...
Qt Creator调用动态链接库文件 1. 新建工程新建一个Qt工程。和新建DLL工程差不多,我们这里选择Application,Qt Console Application,这个代表控制台程序,最终结果就是弹出一个黑窗口,因为我们这里不需要界面,如果需要界面的话,可以选择Qt Widgets Application。操作步骤:文件 -> 新建文件或项目 -> Application-> Qt Console A...
Qt Creator生成动态链接库文件 1. 新建工程第一步选择新建一个C++库的工程。操作步骤:文件 -> 新建文件或项目 -> Library -> C++库 -> choose第二步选择共享库(即动态链接库),输入工程名(即最终生成DLL名)。操作步骤:选择共享库 -> 输入工程名(即最终DLL名) -> 选择工程路径 -> 下一步第三步选择编译平台,一般来讲,wind...
函数参数是指针 OR 引用?该不该加const? 先来说说指针与引用的区别:1.指针可以在任何时候被初始化,引用在创建时必须初始化。2.一旦引用被初始化为一个对象,就不能被指向到另一个对象。指针可以在任何时候指向到另一个对象。3.不存在空引用。引用必须连接到一块合法的内存。4.无论传值还是传指针,函数都会生成一个临时变量,但传引用时,不会生成临时变量。引用并不产生对象的副本,也就是参数传递时,对象无须复制。5.引用在定义时不...
C++基础之基本的输入输出 C++基础之基本的输入输出C++ 标准库提供了一组丰富的输入/输出功能,我们将在后续的章节进行介绍。本章将讨论 C++ 编程中最基本和最常见的 I/O 操作。C++ 的 I/O 发生在流中,流是字节序列。如果字节流是从设备(如键盘、磁盘驱动器、网络连接等)流向内存,这叫做输入操作。如果字节流是从内存流向设备(如显示屏、打印机、磁盘驱动器、网络连接等),这叫做输出操作。I/O 库头文件下列...
C++基础之数组 C++基础之数组数组(Arrays) 是在内存中连续存储的一组同种数据类型的元素(变量),每一数组有一个唯一名称,通过在名称后面加索引(index)的方式可以引用它的每一个元素。也就是说,例如我们有5个整型数值需要存储,但我们不需要定义5个不同的变量名称,而是用一个数组(array)来存储这5个不同的数值。注意数组中的元素必须是同一数据类型的,在这个例子中为整型(int)。例如一个存储5个整...
C++基础之函数 函数是把一个语句序列(函数体)关联到名称和零或更多函数参数列表的 C++ 实体。// 函数名:“ isodd ”// 参数列表拥有一个参数,有名称“ n ”和类型 int// 返回类型是 boolbool isodd(int n){ // 函数体的开始 return n % 2;} // 函数体...
C++基础之string类型 C++基础之string类型string 类型支持长度可变的字符串,C++ 标准库将负责管理与存储字符相关的内存,以及提供各种有用的操作。标准库 string 类型的目的就是满足对字符串的一般应用。与其他的标准库类型一样,用户程序要使用 string 类型对象,必须包含相关头文件。如果提供了合适的 using 声明,那么编写出来的程序将会变得简短些:#include <string&...
C++基础之using声明 C++基础之using声明之前看到的程序,都是通过直接说明名字来自 std 命名空间,来引用标准库中的名字。例如,需要从标准输入读取数据时,就用 std::cin。这些名字都用了:: 操作符,该操作符是作用域操作符。它的含义是右操作数的名字可以在左操作数的作用域中找到。因此,std::cin 的意思是说所需要名字 cin 是在命名空间 std 中定义的。显然,通过这种符号引用标准库名字的方...
C++基础之头文件 C++基础之头文件类C++中我们通过定义类来定义自己的数据结构。类机制是C++中最重要的特征之一。事实上,C++设计的主要焦点就是使所定义的类类型的行为可以像内置类型一样自然。我们看到的像 istream 和 ostream 这样的库类型,都是定义为类的,也就是说,它们严格说来不是语言的一部分。 使用类时我们需要回答三个问题:类的名字是什么?它在哪里定义?它支持什么操作...
C++基础之枚举 C++基础之枚举前言 我们经常需要为某些属性定义一组可选择的值。例如,文件打开的状态可能会有三种:输入、输出和追加。记录这些状态值的一种方法是使每种状态都与一个唯一的常数值相关联。我们可能会这样编写代码:const int input = 0;const int output = 1;const int append = 2;虽然这种方法也能奏效,但是它有个明显的缺点:...
让你的QtCreator编译的更快 让你的QtCreator编译的更快相比于VS,很多人在Qt下编译代码会发现所选择的Qt的编译器编译太慢,这里教大家几个方法,可以有效提升编译速度: (一)项目添加参数-j 4(4是cpu的核数) 使所有的cpu核心都能被充分利用。(二)使用并行编译 在 .pro里加入下面一行QMAKE_CXXFLAGS += /MP指定/mp编译选项,编译器将使用并行编译,同时起多个编译进程...
C++基础之引用与typedef C++基础之引用与typedef引用 1. 初识引用 引用就是对象的另一个名字。在实际程序中,引用主要用作函数的形式参数。我们将在后面再详细介绍引用参数。 引用是一种复合类型,通过在变量名前添加“&”符号来定义。复合类型是指用其他类型定义的类型。在引用的情况下,每一种引用类型都“关联到”某一其他类型。不能定义引用类型的引用,但可以定义任何其他类型的引用。 引用必须用与该引用...
VS调试不进入断点解决方法 VS调试不进入断点解决方法1. 确保进入调试状态 代码中指定程序是需要管理员身份运行,实际调试时VS未使用管理员身份,会导致点击调试实际未进入调试状态。 VS下设置调试使用管理员权限方法:打开程序集的属性窗口,找到“安全性”设置,其中有一个“启用 ClickOnce 安全性设置”,勾选后再反勾选该复选框。 此时在解决方案资源管理器中,就可以找到 app.manifest ...
C++基础之const基础用法 C++基础之const基础用法前世 下列 for 循环语句有两个问题,两个都和使用 512 作为循环上界有关。for (int index = 0; index != 512; ++index) { // ...}第一个问题是程序的可读性。比较 index 与 512 有什么意思呢?循环在做什么呢?也就是说 512 作用何在? 第二个问题是程序的可维护性。假设这个...
C++基础之基本类型 C++基础之基本类型1.1整型 表示整数、字符和布尔值的算术类型合称为整型。 字符类型有两种:char 和 wchar_t。char 类型保证了有足够的空间,能够存储机器基本字符集中任何字符相应的数值,因此,char 类型通常是单个机器字节(byte)。wchar_t 类型用于扩展字符集,比如汉字和日语,这些字符集中的一些字符不能用单个 char 表示。 short、int 和 long...
QT中设置当鼠标在窗口外点击时关闭窗口 我们想要对某一个窗口进行这样的设置: 当鼠标在此窗口区域外点击时,将此窗口关闭。 一般来讲,有以下几种方式: 1.重写鼠标点击事件,判断当前鼠标坐标,当不在窗口坐标区域内时,将窗口关闭。 2.重写失去焦点事件,当窗口失去焦点时,将窗口关闭。 3.也是最简单的方法,直接判断此窗口是不是当前活跃窗口,如果不是,将...
C++实现日志库 C++实现一个日志库,满足以下要求: 1. 日志信息分级:FATAL(致命错误)、ERROR(一般错误)、WARN(警告)、INFO(一般信息)、DEBUG(调试信息) 2. 记录日志信息支持记录到文件、控制台、数据库(要求能支持多种数据库,比如 MSSQL MySQL SQLite等) 3. 要求能够方便配置该功能:比如 开关日志,仅记录某级别以上的日志,日志记录到哪里的功能。 4...