c++
文章平均质量分 65
廊桥一梦
这个作者很懒,什么都没留下…
展开
-
vs2019更新后添加Qt类编译提示error C2653: “XXX”: 不是类或命名空间名称
一、问题描述vs2019更新完16.7.3版本后在工程添加Qt类,编译如下提示:知道是”stdafx.h“的位置不对,但是不清楚默认生成的moc文件怎么会把stdafx.h放在第二句,如下所示:二、分析和解决以前老的工程文件是可以编译通过的。但是这次新的不成。所以逐个比对.h文件的属性设置。发现在强制包含(force Include)里面老的包含两个路径,新的只有”stdafx.h“.将%(Filename)%(Extension)添加进去后解决。三、反思怀疑是qt的插件没有随着vs版本原创 2020-09-12 15:09:59 · 2745 阅读 · 1 评论 -
qt工程编译提示error 1: moc (D:\Qt\Qt5.12.3\5.12.3\msvc2017\bin\moc.exe)
一、问题描述在git导入VS2017+Qt的工程后编译如下报错:Parse error at "IID"error 1: moc (D:\Qt\Qt5.12.3\5.12.3\msvc2017\bin\moc.exe)二、问题分析导入的项目在另外电脑上是可以编译的,也就是说可能配置有问题。代码是没错误的。极有可能是项目属性设置的问题。一开始以为缺少qt的依赖库目录。但是在属性里面手动添加后没有反应。还是提示moc错误。和另外一个工程属性进行了比较,发现属性里面默认有Qt project Se原创 2020-05-13 00:07:37 · 8386 阅读 · 2 评论 -
QTableView实现鼠标悬浮(hover)行高亮显示
QTableView实现鼠标悬浮(hover)行高亮显示需要实现QTableview鼠标悬浮时当前行高亮显示。但是实现的过程中发现一开始的方案不能用,必须捕捉鼠标的move事件通过Delegate自己绘制背景实现。一开始想通过重载Delegate里面的editorEvent捕捉。后面发现鼠标的move事件可以捕捉的到,但是leave事件获取不到,这样就会造成鼠标移出表格始终又一行高亮。后面只能通...原创 2019-11-29 16:41:24 · 11922 阅读 · 2 评论 -
C++11 lambda 表达式解析
C++11 新增了很多特性,lambda 表达式是其中之一,如果你想了解的 C++11 完整特性,建议去这里,这里,这里,还有这里看看。本文作为 5 月的最后一篇博客,将介绍 C++11 的 lambda 表达式。转载自:http://www.cnblogs.com/haippy/archive/2013/05/31/3111560.html很多语言都提供了 lambda 表达式,如转载 2015-01-14 14:47:04 · 368 阅读 · 0 评论 -
如何实现类的成员函数作为回调函数
许多程序员都发现,利用MFC或者其它的C++应用编写回调函数是非常麻烦的,其根本原因是回调函数是基于C编程的Windows SDK的技术,不是针对C++的,程序员可以将一个C函数直接作为回调函数,但是如果试图直接使用C++的成员函数作为回调函数将发生错误,甚至编译就不能通过。通过查询资料发现,其错误是普通的C++成员函数都隐含了一个传递函数作为参数,亦即“this”指针,C++通过传递一个指向自身转载 2015-01-23 15:22:34 · 702 阅读 · 0 评论 -
Google C++ Testing Framework Primer
Google C++ Testing Framework Primer转载 2015-11-20 23:12:22 · 587 阅读 · 0 评论 -
解决 unresolved external symbol 无法解析 _send@16
(1) vc网络编程中遇到一个编译问题,原来是少了WSOCK32.LIB。在 project-->settings-->Link-->Object/Library modules 中加入库WSOCK32.LIB即可。在VC中进行WINSOCK的API编程开发的时候,需要在项目中使用下面三个文件,否则会出现编译错误。 1.WINSOCK.H: 这是WINSOCK API的头文件,需要包转载 2016-02-25 09:54:25 · 1371 阅读 · 0 评论 -
在vs2008下编译openssl用sha256加密
一、按照openssl代码编译环境 1、先下载Openssl源码、Perlfor Win32 下载地址: Openssl源码:http://www.openssl.org/source/ Perl forWin32:http://downloads.activestate.com/ActivePerl/Windows/5.8/ 2、安装perl for win32并解压openssl源码,原创 2016-06-17 16:38:43 · 1025 阅读 · 0 评论 -
windows下编译googleBreakpad
windows下编译googleBreakpad,生成需要的动态链接库文件。原创 2016-08-24 19:12:34 · 4177 阅读 · 1 评论 -
C++框架和库资源汇总
C++ 资源大全关于 C++ 框架、库和资源的一些汇总列表,内容包括:标准库、Web应用框架、人工智能、数据库、图片处理、机器学习、日志、代码分析等。标准库C++标准库,包括了STL容器,算法和函数等。 C++ Standard Library:是一系列类和函数的集合,使用核心语言编写,也是C++ISO自身标准的一部分。 Standard Template Library...转载 2019-01-03 11:34:36 · 284 阅读 · 0 评论 -
VS2017安装Qt插件后发生的“未能正确加载VSIX包”的问题
VS2017安装Qt插件后发生的“未能正确加载VSIX包”的问题问题描述解决方案问题描述在安装完成Vs2017后,在工具的插件和扩展中安装了qt的插件。安装完成启动后提示“未能正确加载VSIX包”,并且后面跟了一个报错的路径C:\Users\zhao\AppData\Roaming\Microsoft\VisualStudio\15.0_3bf6469c\ActivityLog.xml打开路径...原创 2019-05-08 15:49:46 · 12055 阅读 · 1 评论 -
WM_MOUSEWHEEL模拟滚轮事件的说明
最近做一个程序,由于某些数据获取不到,需要控制另一个窗口,模拟点击事件和滚动事件实现。但是过程中点击事件WM_LBUTTONDOWN和WM_LBUTTONUP组成的单击事件能正常的模拟,但是WM_MOUSEWHEEL滚轮事件一直会出现问题。问题描述通过窗口句柄找到的滚动的相对位置没法模拟滚动开发中使用的函数:::PostMessage(hwnd, WM_MOUSEWHEEL, MAKEWP...原创 2019-07-23 19:59:25 · 8397 阅读 · 1 评论 -
c++中的 extern "C"
比如说你用C 开发了一个DLL 库,为了能够让C ++语言也能够调用你的DLL 输出(Export) 的函数,你需要用extern "C" 来强制编译器不要修改你的函数名。通常,在C 语言的头文件中经常可以看到类似下面这种形式的代码:C代码 #ifdef __cplusplus extern "C" { #endif /**** so转载 2015-01-29 10:12:42 · 375 阅读 · 0 评论 -
Debug跟Release区别
Debug和Release区别Debug和Release区别 2011年10月17日 Debug和Release区别VC下Debug和Release区别 最近写代码过程中,发现 Debug 下运行正常,Release 下就会出现问题,百思不得其解,而Release 下又无法进行调试,于是只能采用printf方式逐步定位到问题所在处,才发现原来是给定的一个数组未初始化,导转载 2014-09-30 09:30:27 · 497 阅读 · 0 评论 -
Vs 中出现 error LNK2019: 无法解析的外部符号的解决参考
今天编辑动态库链接生成转载 2014-09-04 21:59:55 · 8397 阅读 · 0 评论 -
typedef介绍
原文出处:http://hi.baidu.com/x___f__/blog/item/67debbc55360bca58226ac98.htmltypedef是c/c++代码中经常用到的 一个关键字. 他的主要做用是给变量类型定义一个别名. 从而达到代码简化, 促进跨平台开发的目的. 下面是typedef的最经常的用法: typedef struct{ int a;转载 2014-08-20 11:33:02 · 503 阅读 · 0 评论 -
C/C++中near和far的区别
C/C++中near和far的区别 关键字near和far受目标计算机体系结构的影响。目前编程中使用不多。 near关键字创建一个指向可寻址内存低端部分的目标指针。这些指针占用内存的单一字节,并且他们能够指向的内存单元被限制到256个位置,通常是在0x0000~0x00ff范围中。 int near * ptr; far关键字创建一转载 2014-08-20 11:31:15 · 1699 阅读 · 0 评论 -
std::vector介绍
vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。为了可以使用vector,必须在你的头文件中包含下面的代码:#include vector属于std命名域的,因此需要通过命名限转载 2014-08-11 09:34:16 · 468 阅读 · 0 评论 -
dll中的模块定义文件.def
模块定义 (.def) 文件为链接器提供有关被链接程序的导出、属性及其他方面的信息。生成 DLL 时,.def 文件最有用。由于存在可代替模块定义语句使用的链接器选项,通常不需要 .def 文件。也可以将 __declspec(dllexport) 用作指定导出函数的手段。在链接器阶段可以使用 /DEF(指定模块定义文件)链接器选项调用 .def 文件。如果生成的 .exe 文件没有导出,使用转载 2014-09-09 15:32:19 · 1022 阅读 · 0 评论 -
DLL 中 .def文件的使用
DLL中导出函数的声明有两种方式:一种为在函数声明中加上__declspec(dllexport),这里不再举例说明;另外一种方式是采用模块定义(.def) 文件声明,.def文件为链接器提供了有关被链接程序的导出、属性及其他方面的信息。 首先创建 一个DLL程序,.cpp中int __stdcall Add(int numa, int numb){转载 2014-09-09 15:40:41 · 451 阅读 · 0 评论 -
tinyxml使用
前言TinyXML是一个开源的解析XML的解析库,能够用于C++,能够在Windows或Linux中编译,使用TinyXML进行C++ XML解析,使用简单,容易上手。这个解析库的模型通过解析XML文件,然后在内存中生成DOM模型,从而让我们很方便的遍历这棵XML树。 DOM模型即文档对象模型,是将整个文档分成多个元素(如书、章、节、段等),并利用树型结构表示这些元素之间的顺序关系以及转载 2014-08-27 21:27:44 · 485 阅读 · 0 评论 -
const与#define的优缺点
1.define由预处理程序处理,const由编译程序处理2.#define不分内存,因为它是预编译指令,编译前进行了宏替换。const不一定?某种说法,Const常量是占有内存的被“冻结”了的变量3.const定义常量是有数据类型的,这样const定义的常量编译器可以对其进行数据静态类型安全检查,而#define宏定义的常量却只是进行简单的字符替换,没有类型安全检查,且有时还会产生边转载 2014-09-10 21:44:00 · 1495 阅读 · 0 评论 -
cin简介
整数的基数:Dec(十进制)Oct(八进制)Hex(十六进制 设置基数的函数 setbase(int n),n可以是10、8、或16。如果不明确的改变流的基数,流的基数是不变的。 设置浮点数精度:setprecision (必须带参数)precision (无参数时返回当前设置的精度)设置后,对以后的输出都有效。 #转载 2014-09-01 22:27:25 · 1059 阅读 · 0 评论 -
fatal error LNK1169: 找到一个或多个多重定义的符号
本文转载自maniac3d《fatal error LNK1169: 找到一个或多个多重定义的符号》申明全局变量,全局函数一定要在cpp中申明其他类引用该全局变量就include该cpp的h文件然后extern一下就好了否则容易出现该重复定义错误这个"容易"是如何解释的呢?例如A.h中如果申明了全局变量int Global;转载 2014-09-24 14:34:54 · 657 阅读 · 0 评论 -
c++中静态函数与动态函数的区别
在C语言中,由于没有类转载 2014-09-24 14:01:01 · 15030 阅读 · 0 评论 -
if !defined与pragma once
两者的共同点都是为了避免同一个文件被include多次,但是各有千秋。在用VC6.0向导生成的头文件中,经常可以看见如下的代码段: #if !defined(AFX_RESIZABLELAYOUT_H__INCLUDED_) #define AFX_RESIZABLELAYOUT_H__INCLUDED_ #if _MSC_VER > 1000 #pragma on转载 2014-09-24 16:12:17 · 688 阅读 · 0 评论 -
C++中explicit关键字的作用
C++提供了关键字explicit,可以阻止不应该允许的经过转换构造函数进行的隐式转换的发生。声明为explicit的构造函数不能在隐式转换中使用。 C++中, 一个参数的构造函数, 承担了两个角色。 1 是个构造器 2 是个默认且隐含的类型转换操作符。 所以, 有时候在我们写下如 AAA = XXX, 这样的代码, 且恰好XXX的类型正好是AAA单参数构造器的参数类型, 这时候编译器就转载 2014-08-19 10:07:49 · 361 阅读 · 0 评论