
C++
文章平均质量分 55
whatnamecaniuse
悟空啊!不是做师父的要批评你,你学习佛法这么久,怎么还是不见长进!你就是太有性格了,所以步步都是凶险。你看为师手中的这串念珠,经年累月地磨光了棱棱角角,颗颗都是一模一样地圆滑,所谓佛法的真谛就蕴藏在这每一粒念珠里。依我看这位小施主倒是颇具慧根。
展开
-
C标准库中不安全的函数
C标准库中有一些函数存在副作用。虽然这些函数功能强大,但是如果忽略他们的副作用,会让整个应用不稳定。初期运行良好的代码,到了项目晚期,时不时崩溃。一、字符串缓冲区溢出函数 严重性 解决方案 strcpy 很危险 改为使用 strncpy。 strcat 很危险 改为使用 strncat。 sprintf 很危险 改为使用 snprintf,或者使用精度说明符。 scanf 很危险 使用精度说明符,或自己进行解析。 ssc原创 2020-10-12 11:32:05 · 1359 阅读 · 0 评论 -
c语言中的不安全库函数
https://blog.youkuaiyun.com/caogenwangbaoqiang/article/details/79786972那些不安全的库函数C 和 C++ 不能够自动地做边界检查,边界检查的代价是效率。一般来讲,C 在大多数情况下注重效率。然而,获得效率的代价是,C 程序员必须十分警觉以避免缓冲区溢出问题。C语言标准库中的许多字符串处理和IO流读取函数是导致缓冲区溢出的罪魁祸首。我们有必要了解这些函数,在编程中多加小心。一、字符串处理函数strcpy()strcpy(转载 2020-09-23 16:23:08 · 249 阅读 · 0 评论 -
Windows GUI自动化测试技术的比较和展望
注意:这篇文章比较古老,仅供入门参考http://www.51testing.com/html/16/n-170116.html 以前写过一篇跟UI自动化测试有关的技术,谈到了一个自动化测试工具必备的几个功能,而且也提到了Windows平台自动化测试工具所基于的一些技术。下边就说一下这些技术的比较和展望,同时也包含了一些纠结…… Windows API 识转载 2017-08-01 11:03:47 · 1622 阅读 · 0 评论 -
MS UI Automation简介
http://blog.youkuaiyun.com/ffeiffei/article/details/6637418MS UI Automation(Microsoft User Interface Automation:UIA)是随.net framework3.0一起发布的,虽然在如今这个几乎每天都有各种新名词、新技术出来的所谓的21世纪,它显得已经有些过时了。前些日子,正好一个转载 2017-08-07 09:04:58 · 555 阅读 · 1 评论 -
gdb break 断点设置(一)
http://blog.youkuaiyun.com/yangzhongxuan/article/details/6897968 http://sourceware.org/gdb/current/onlinedocs/gdb二、断点设置gdb断点分类:以设置断点的命令分类:breakpoint可以根据行号、...转载 2018-02-26 19:34:20 · 7886 阅读 · 0 评论 -
栈空间受限情况下C/C++函数调用注意事项
C/C++是基于堆栈的语言,调用参数、局部变量都定义在栈上。当栈空间受限时,需要仔细斟酌。首先说说个人对栈的理解,受不同编译器、函数调用方式等等因素影响,栈具体实现稍有区别,但是不影响我们对栈布局的理解。根据上图,有以下建议:1、函数调用a、一个函数,不宜多于3个参数,不应多于5个参数。如果超出,首先应该检查代码,是否函数职责过重,是否可拆分。如果无法重构函数,建议定义1个结构体,将参数集中到结构...原创 2018-04-02 00:52:43 · 792 阅读 · 0 评论 -
资源受限环境下C++编程
相对于PC环境,嵌入式环境里CPU、内存、文件等等资源都很紧张,因此对于一些C++代码背后的细节谨慎处理。举例1:构造与析构假如有如下类声明class A{public: A(void); A(const A& copy); ~A(void); A operator=(const A& copy); A operator+(const A...原创 2018-04-16 19:21:31 · 271 阅读 · 0 评论 -
qt防止重复启动
通常我们的程序需要访问各种资源,如果同时起多份实例,造成资源争用,带来混乱。因此需要一个方法保证任何时候只起一个实例。在qt中可以借助共享内存来实现。QSharedMemory有一个create方法,在qt帮助里这么描述:bool QSharedMemory::create(int size, AccessMode mode = ReadWrite)Creates a shared memory ...原创 2018-06-04 09:48:04 · 1704 阅读 · 1 评论 -
debian下为QT安装QWebEngine
在debian上通过源码编译方式安装Qt,默认不安装QWebEngine。根据度娘提供的信息,在windows下只有vs版本才安装。参考这篇文章进行编译https://wiki.qt.io/QtWebEngine/How_to_Try首先安装依赖库。sudo apt-get install libegl1-mesa-dev libglu1-mesa-dev freeglut3-dev mesa-c...转载 2018-06-04 17:09:48 · 2861 阅读 · 0 评论 -
在debian下安装QT 5.10 32位
qt下载地址:http://download.qt.io/archive/qt/找到5.11.0的源码包,下载。5.11/5.11.0/single/qt-everywhere-src-5.11.0.tar.xz从qt官网下载太慢,用百度找到国内镜像。https://mirrors.tuna.tsinghua.edu.cn/qt/悲剧,国内镜像只有5.10,只好下载5.10.1 ...原创 2018-06-01 10:35:55 · 4106 阅读 · 0 评论 -
编译器的选择(x86_amd64, amd64等的区别)
https://blog.youkuaiyun.com/WL2002200/article/details/52984241/结论32/64 位系统编译在32位系统上运行 => x8632 系统上编译64位系统上运行 => x86_amd6464 系统上编译在64位系统上运行 => amd64解释注:以下引自MSDN The following list describes the vari...转载 2018-06-17 12:16:57 · 9577 阅读 · 2 评论 -
qt5 msvc在源代码中写中文的办法
选用QT是为了跨平台,在linux下默认是utf8无BOM头,但是这种文件在windows上有问题。mingw版本还好,能编译。但是msvc版本会按照local字符集处理,遇到中文就会出错。经过查阅资料,MS在vs2015以后增加了一个编译选项 utf-8,告知编译器使用utf-8字符集。在Pro文件中增加以下内容:win32{ QMAKE_CXXFLAGS += /utf-8}将此参...原创 2018-06-19 11:30:18 · 1074 阅读 · 0 评论 -
在QT中使用MySQL数据库
https://blog.youkuaiyun.com/yunzhifeiti/article/details/72709140前篇已经写了如何使用QT链接sqlite和SQLServer,见点击打开链接本次主要说明如何通过QT链接MySQL数据库;首先确保数据库中存在Mysql的驱动,详见QT安装目录中的plugins/sqldrivers文件夹下是否存在qsqlmysql.dll文件。首先在xxx.pro...转载 2018-07-09 15:07:30 · 534 阅读 · 0 评论 -
获取sqlite insert后的id
1、背景知识(1). ROWID每个表默认都有 rowid 列,除非创建表时指定了 WITHOUT ROWID, 它现在是 64 位长的。在查询时用 select * from table1 里没有它,要显式的用 select rowid, * from table1 就会列出它来。(2). ROWID 的别名ROWID 除了可用 rowid 查出它之外,还可用别名 _ROWID_ 和 OID,都...转载 2018-07-11 16:50:33 · 9182 阅读 · 0 评论 -
关于QWebEngineView崩溃的几种情况
第一种: https://blog.youkuaiyun.com/e5Max/article/details/79769076项目发布后,在某些机器上出现崩溃的现象,经查,是在启动初始化QtWebengine模块时导致的崩溃。然后测试了Qt的官方例子simpleBrownser,在这些机器上同样也出现崩溃,开始以为是缺少资源文件或者是系统需要补丁。久查未果,后来还是在Qt的Bug列表中找到了答案,不得不说...转载 2018-07-07 17:38:51 · 21964 阅读 · 9 评论 -
linux/windows下查看目标文件.a/.lib的函数符号名称
https://blog.youkuaiyun.com/listener51/article/details/772668241、linux下(1)、 objdump -t 查看对象文件所有的符号列表;例如objdump -t libtest.o(2)、nm列出目标文件(.o)的符号清单;例如nm -s filename.a/filename.o/a.out(3)、...转载 2019-05-25 11:40:09 · 1474 阅读 · 0 评论 -
Bad smell in code (代码的坏味道)
http://blog.youkuaiyun.com/sulliy/article/details/66355961.Duplicated Code(重复的代码)臭味行列中首当其冲的就是Duplicated Code。如果你在一个以上的地点看到相同的程序结构,那么当可肯定:设法将它们合而为一,程序会变得更好。最单纯的Duplicated Code就是[同一个class内的两个方法含转载 2015-11-30 14:29:49 · 1035 阅读 · 0 评论 -
快乐编程,娱乐注释
http://www.cnblogs.com/xdp-gacl/p/4198935.html// _ooOoo_// o8888888o// 88" . "88// (|转载 2015-12-10 00:32:42 · 1245 阅读 · 0 评论 -
QtCreator的配置文件
早先Qt装在D盘。最近重装了系统,盘符发生变化,D盘变成G盘。打开QtCreator时,报告找不到维护工具。新建测试工程,报告“没有有效的QT版本”。打开Qt安装目录,找到G:\QtSDK\QtCreator\share\qtcreator\Nokia,修改该目录下文件,把盘符都修正,原创 2015-06-05 16:39:53 · 2634 阅读 · 0 评论 -
VC编程建议
1、不要使用全局函数,应该代之以类的静态函数。 2、不要使用全局变量,如果必须使用,请定义一个全局结构,把这个全局变量放到结构里去。更好的方法是定义一个全局的单例。 3、MFC的界面组件没有考虑线程安全,因此在工作线程里不要直接操作操作界面组件。如果需要更新界面,有两种方法a、用mutex保护;b、给界面发消息,在界面线程里更新。推荐第二种。 4、不要随意开原创 2009-10-08 10:54:00 · 435 阅读 · 0 评论 -
今天周末,在家休息,从CString派生,写了个CExtendString类,增加了一个Splite函数用于分拆字符串。
类声明如下:#pragma once#include #include using namespace std;typedef vector CSpliteResult;class CExtendString : public CString{public: CExtendString(const WCHAR*);public:原创 2009-11-01 14:39:00 · 871 阅读 · 0 评论 -
如何使用CInternetSession打开https网站
<br />http://hi.baidu.com/piperworldcup/blog/item/eda62f0209d0f8044bfb5185.html<br /> <br />https://www.certiport.com/portal/Pages/Registration.aspx原创 2011-04-06 17:51:00 · 3446 阅读 · 0 评论 -
http相关的错误
<br />0x80004005 Unspecified error <br />0x8000FFFF Unexpected error <br />0x80070008 Out of memory <br />0x8007000E Out of memory <br />0x80072ee1 Cannot create any more ServerXMLHTTP objects (cannot exceed原创 2011-04-12 14:08:00 · 2555 阅读 · 0 评论 -
qt下载
历史版本下载http://download.qt.nokia.com/qtsdk/ 源码http://download.qt.nokia.com/qt/原创 2011-09-16 21:12:53 · 636 阅读 · 0 评论 -
Windows进化史
转载 2012-07-25 00:17:27 · 508 阅读 · 0 评论 -
C语言里全局变量管理
C 全局变量原创 2014-10-15 11:39:28 · 2438 阅读 · 0 评论 -
c++模板类
http://blog.youkuaiyun.com/jfkidear/article/details/7888167理解编译器的编译模板过程如何组织编写模板程序前言常遇到询问使用模板到底是否容易的问题,我的回答是:“模板的使用是容易的,但组织编写却不容易”。看看我们几乎每天都能遇到的模板类吧,如STL, ATL, WTL, 以及Boost的模板类,都能体会到这样的滋味:接转载 2014-11-04 22:28:49 · 500 阅读 · 0 评论 -
C++文件读写总结
在C++中如何实现文件的读写?作者: infobillows 发表日期: 2007-04-03 21:33 点击数: 465一、ASCII 输出为了使用下面的方法, 你必须包含头文件(译者注:在标准C++中,已经使用取代,所有的C++标准头文件都是无后缀的。)。这是 的一个扩展集, 提供有缓冲的文件输入输出操作. 事实上, 已经被包含了, 所以你不必包含所有这两个文件,转载 2014-11-06 22:34:03 · 469 阅读 · 0 评论 -
C++中,函数声明时指针、引用相关的语义,定义方法原型时参考。
一门语言,包括语法、语义。通常计算机书籍上只会讲语法规则。这几年下来,发现讲语义的书籍太少太少(也许是我很久不看书了^_^)。本文抛砖引玉,罗列一些与函数声明相关的常见语义。 函数在调用时,将参数压栈,返回值则拷贝给调用者。如果是简单类型,事情很简单,但是牵扯到指针或者引用,事情就会复杂一些,因为在C/C++中,由程序员负责管理内存和资源,一个优秀的程序员必须清楚的了解自己代码内,每一次内原创 2008-09-16 20:57:00 · 1152 阅读 · 0 评论