![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
文章平均质量分 71
fjb2080
这个作者很懒,什么都没留下…
展开
-
Sqlite如何修改表结构字段类型
SQLite 仅仅支持 ALTER TABLE 语句的一部分功能,我们可以用 ALTER TABLE 语句来更改一个表的名字,也可向表中增加一个字段(列),但是我们不能删除一个已经存在的字段,或者更改一个已经存在的字段的名称、数据类型、限定符等等。改变表名 - ALTER TABLE 旧表名 RENAME TO 新表名增加一列 - ALTER TABLE 表名 ADD COLUMN 列名 数据类型而修改一列无法像其他数据库那样直接以“ALTER TABLE 表名 ADD COLUMN 列名...转载 2021-06-20 14:53:11 · 1957 阅读 · 0 评论 -
windows下启动myslq
1、下载mysql:mysql-5.7.31-win322、进入目录,在mysql-5.7.31-win32下新建:my.ini,文件参考phpstudy的,拷贝过来一个,修改一下[mysql]default-character-set=utf8[mysqld]port=3306basedir=D:/QT/mysql-5.7.31-win32/datadir=D:/QT/mysql-5.7.31-win32/data/character-set-server=utf8default原创 2020-11-25 17:23:48 · 177 阅读 · 0 评论 -
QT5.14.2编译安装mysql
1、下载mysql的压缩包:mysql-5.7.31-win32 下载地址:https://www.mysql.com/。在页面最底部:这边下载32位的压缩包,不是安装包2、把压缩包解压3、进入qt5.14.2的源码目录:Qt5.14.2\5.14.2\Src\qtbase\src\plugins\sqldrivers\mysql打开myslq.pro注释:#QMAKE_USE += mysql加入语句:INCLUDEPATH +=D:/QT/mysql-5....原创 2020-11-25 16:56:38 · 631 阅读 · 0 评论 -
QT5解析Json文件
一、QT5 Json简介QT4中使用第三方库QJson解析JSON文件。QT5新增加了处理JSON的类,类均以QJson开头,包含在QtCore模块中。QT5新增加六个相关类: QJsonArray 封装 JSON 数组 QJsonDocument 读写 JSON 文档 QJsonObject 封装 JSON 对象 QJsonObject::iter...转载 2020-09-10 12:21:24 · 587 阅读 · 0 评论 -
QT5.63+vc2017的静态编译,含openssl
1、打开文件qt-everywhere-src-5.6.3\qtbase\mkspecs\common中的msvc-desktop.conf修改:QMAKE_CFLAGS_RELEASE = $$QMAKE_CFLAGS_OPTIMIZE -MDQMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_OPTIMIZE -Zi -MDQMAKE_CFLAGS_DEBUG = -Zi -MDd改为QMAKE_CFLA...原创 2020-09-08 01:10:55 · 467 阅读 · 0 评论 -
VC6和VS2017使用webbrowser,并禁用鼠标右键
vc6直接在控件里添加webbrowser控件,并给控件添加一个变量m_ctrlWeb。打开网页:m_ctrlWeb.Navigate("http://blog.csdn.net/fjb2080",NULL,NULL,NULL,NULL);禁止鼠标右键:在添加webbrowser控件时会自动加入类CWebBrowser2,在类CWebBrowser2里添加成员函数:BOOL Pr...原创 2020-01-22 19:09:09 · 1231 阅读 · 0 评论 -
小试lambda
写个小程序小试下lambda的使用,是很方便啊!#include #include #include #include using namespace std;int main(int argc, char *argv[]){ vector v; v.reserve(100); for(int i=0; i<10; ++i) v.push_back(random()%1原创 2012-04-17 17:36:10 · 771 阅读 · 0 评论 -
让C/C++程序一次编译可以发布到多版本Linux之上
转自:战魂小筑, http://www.cppblog.com/sunicdavy/archive/2012/04/20/172108.html最近页游开放平台比较多, 每个平台要求的Linux版本各不相同, 这给开发人员部署服务器带来了很大的困难. 在本机Linux编译的程序,发布时即便将依赖的so附带到目标Linux环境,仍然会碰到依赖及版本问题,例如:[root@lo转载 2012-04-20 16:50:32 · 10112 阅读 · 0 评论 -
C++11 多线程:数据保护
转自:http://www.oschina.net/question/12_59878编写多线程程序时,多个线程同时访问某个共享资源,会导致同步的问题,这篇文章中我们将介绍 C++11 多线程编程中的数据保护。 数据丢失让我们从一个简单的例子开始,请看如下代码:01#include 02#include转载 2012-07-04 11:33:06 · 1218 阅读 · 0 评论 -
AES加密算法
转自:http://blog.csdn.net/gaoxin1076/article/details/7713356上几天大概了解了一下AES算法,具体的加密算法现在不想很清楚的了解,只是能够拿来用就好了。这里有份c++的AES。Aes.h [cpp] view plaincopyprint?#include //enum KeySize {转载 2012-07-04 11:14:15 · 2172 阅读 · 0 评论 -
std::wstring_convert处理UTF8
转自:http://www.cppblog.com/mythma/archive/2012/09/11/wstring_convert_utf8.html扔掉MultiByteToWideChar 吧,使用std::wstring_convert和std::codecvt_utf8 来处理UTF8与WChar之间的互转。VC和Clang都支持哦~#include转载 2012-09-12 09:34:01 · 5815 阅读 · 2 评论 -
Step By Step(C++模板函数)
转自:http://www.cnblogs.com/stephen-liu74/archive/2012/07/16/2593492.html一、模板函数实例化: 存在这样一种函数,它们在行为上是完全一致的,而不同只是函数的参数类型。对于这种类型的函数,我们可以应用C++模板和泛型来帮助我们更优雅和更具技巧性的的解决一些程序设计上的实际问题。如:1转载 2012-09-12 09:35:05 · 965 阅读 · 0 评论 -
Step By Step(C++模板类)
转自:http://www.cnblogs.com/stephen-liu74/archive/2012/07/19/2599400.html和函数一样,C++中的class也可以类型参数化,其中容器类是极具这一特征的。对于模板类的基本定义和使用,可以参考STL,这里就不做过多的赘述了。下面将主要介绍一下与其相关的高级实用特征。一、模板的特化: 这里可以先将类模板转载 2012-09-12 09:36:01 · 750 阅读 · 0 评论 -
std::function 和 std::bind
std::function 和 std::bind标准库函数bind()和function()定义于头文件中(该头文件还包括许多其他函数对象),用于处理函数及函数参数。bind()接受一个函数(或者函数对象,或者任何你可以通过"(...)"符号调用的事物),生成一个其有某一个或多个函数参数被“绑定”或重新组织的函数对象。(译注:顾名思义,bind()函数的意义就像它的函数名一样,是用来绑定函数转载 2012-04-17 11:21:34 · 2040 阅读 · 0 评论 -
C++ 0x 之 Lambda 受 VS 2010 支持
译 / 李博(光宇广贞) C++ 0x 中,“Lambda 表达式”隐式定义并构造匿名函数对像,比如下例“Hello World”的 Lambda 表达式:图一 这个 [] 就是 Lambda 前导算符,它通知编译器其后引导的是一个 Lambda 表达式。( int n ) 是 Lambda 参数表声明。{ cout 是 Lambda 构造的匿名函转载 2012-04-10 14:02:47 · 1392 阅读 · 0 评论 -
setup2go制作安装程序
QT程序设计完毕时,我们就要发布自己的程序,发布程序有两种方法:一是静态编译,二是制作程序安装包。静态编译好麻烦,我从来没有成功过,所以我用了动态编译方法,设计完成时,用release方式编译程序,把生成的EXE文件和其依赖的库放在一个文件夹中,用setup2go生成安装文件。软件的下载地址:好,我们启动程序,选择文件>>>>>>>新建工程。保存工程项目 出现了安装转载 2012-01-06 21:12:43 · 5597 阅读 · 1 评论 -
gdb常用命令abc
转自:http://blog.csdn.net/wuzh1230/article/details/7188822gdb常用命令本机调试带参数启动gdb --args ./program arg1 arg2 arg3在main()处断点break main启动以后设置参数运行run arg1 arg2 arg3取消参转载 2012-01-10 12:30:03 · 1337 阅读 · 0 评论 -
基于tcpdump实例讲解TCP/IP协议
转自:http://www.cnblogs.com/ggjucheng/archive/2012/02/02/2335495.html前言虽然网络编程的socket大家很多都会操作,但是很多还是不熟悉socket编程中,底层TCP/IP协议的交互过程,本文会一个简单的客户端程序和服务端程序的交互过程,使用tcpdump抓包,实例讲解客户端和服务端的TCP/IP交互细节。转载 2012-02-03 15:27:12 · 7284 阅读 · 12 评论 -
ARP C++实现源代码
转自:不变hi.baidu.com/wuxiaoming1733/blog/item/f7cebd191cfeb35a43a9ad92.html#ifndef MY_ARP_CHEAT_INCLUDE_H #define MY_ARP_CHEAT_INCLUDE_H //字节对齐必须是1 #pragma pack (1) struct ethernet_head {转载 2012-02-03 17:38:32 · 8000 阅读 · 1 评论 -
网络抓包源代码
转自:http://hi.baidu.com/wuxiaoming1733/blog/item/d2b5b738e4094bddd4622570.html在进行iOS开发过程中,经常会遇到各种各样的网络访问问题,以前苦于没有抓包工具,很多网络问题解决起来很痛苦。现在终于好了,本文提供两种方式进行网络抓包: 1. 网络共享 + 可视化抓包工具基本原理原理比较简单,io转载 2012-02-03 17:54:39 · 6621 阅读 · 2 评论 -
Raw Socket(原始套接字)实现Sniffer(嗅探)
转自:http://hi.baidu.com/wuxiaoming1733/blog/item/5b85a6d35353452b960a1663.html一. 摘要 Raw Socket: 原始套接字 可以用它来发送和接收 ip 层以上的原始数据包, 如 ICMP, TCP, UDP... int sockRaw = socket(AF_INET,原创 2012-02-03 16:54:17 · 4030 阅读 · 0 评论 -
mplayer命令列表
默认mplayer是从键盘上获得控制信息,mplayer另外提供了一种更为灵活的控制方式,用来进行播放控制——slave模式。在slave模式下,MPlayer为后台运行其他程序,不再截获键盘事件,MPlayer会从标准输入读一个换行符(\n)分隔开的命令。#mplayer -input cmdlist// 会打印出一份当前mplayer所支持的所有slave模式的命令原创 2012-02-14 17:31:56 · 9071 阅读 · 0 评论 -
C++ 0x 之 Lambda:贤妻与娇娃,你娶谁当老婆?听 FP 如何点化 C++
转自:http://blog.csdn.net/hikaliv/article/details/4532980文 / 李博(光宇广贞) 先以《N1958》提案的开场白,做为本文的开场白吧:A number of languages provide a way of passing code as arguments without having to def转载 2012-04-10 14:27:08 · 1344 阅读 · 0 评论 -
Step By Step(C++模板基本技巧)
转自:http://www.cnblogs.com/stephen-liu74/archive/2012/07/25/2608149.html一、typename的另一种使用方式: 在此之前,我们了解到的有关该关键字的用途更多是针对模板参数的定义。而这里介绍的使用方式则有些不同,主要区别是typename的这种使用方式用于定义或提示编译器,其后修饰的标识符为模板参数中转载 2012-09-12 09:36:44 · 974 阅读 · 0 评论 -
Step By Step(C++模板参数)
转自:http://www.cnblogs.com/stephen-liu74/archive/2012/07/29/2614249.html一、模板类静态数据成员的定义: 在下面的代码中,我们给我一个基于模板的单实例类SingletonClass,同时在该类中给出获取单实例和释放单实例的两个静态方法。这样,对于其他需要具有单实例功能的其他类直接继承该类便可同样具有了单实转载 2012-09-12 09:37:23 · 1093 阅读 · 0 评论 -
Step By Step(C++模板解析)
转自:http://www.cnblogs.com/stephen-liu74/archive/2012/07/31/2616583.html一、符号查找: 这里先给出两个基本的术语,它们将在后面的篇节中被广泛的引用。 1. 限定作用域符号: 如果一个名称(函数名、类名或变量名)的前面包含域解析运算符(::),或成员访问运算符(. or ->),这转载 2012-09-12 09:38:04 · 843 阅读 · 0 评论 -
QTreeView和QStandardItemModel的简单使用
Dialog.h#ifndef DIALOG_H#define DIALOG_H#include <QDialog>namespace Ui {class Dialog;}class QStandardItemModel;class Dialog : public QDialog{ Q_OBJECTpublic: explicit Dia...原创 2019-02-09 15:36:54 · 1964 阅读 · 0 评论 -
正则表达式匹配任意字符(包括换行符)的写法
今天在Java中想使用正则表达式来获取一段文本中的任意字符。于是很随意得就写出如下匹配规则: (.*) 结果运行之后才发现,无法获得换行之后的文本。于是查了一下手册,才发现正则表达式中,“.”(点符号)匹配的是除了换行符“\n”以外的所有字符。同时,手册上还有一句话:要匹配包括 '\n' 在内的任何字符,请使用像 '[.\n]' 的模式。于是我将正则表达式的匹配规则修改如下: ([.\n]*),当...转载 2018-03-24 15:54:34 · 7799 阅读 · 1 评论 -
HTML解析库Gumbo的使用(二)
html代码如下:I'm a title是一个节点,type为:GUMBO_NODE_ELEMENT,它有三个字节点,分别为:1)、第一个节点为空白符、换行符的空白节点,type类型为:GUMBO_NODE_WHITESPACE,其文本值v.text.text为:“\n”。2)、第二个节点是元素节点,type为:GUMBO_NODE_ELEMENT,其element.t原创 2018-01-09 12:32:58 · 2121 阅读 · 0 评论 -
HTML解析库Gumbo的使用(一)
Gumbo结构关系图如下:测试htm文件内容如下(a.html): I'm a titleI'm a body text代码如下(mian.cpp):#include #include #include #include #include "gumbo/gumbo.h"int main(int argc, char *argv[]){原创 2018-01-07 02:31:19 · 8753 阅读 · 4 评论 -
关于QT5使用wamp的mysql连接问题
在使用qt5的sql进行连接mysql时,报错如下:QSqlDatabase: QMYSQL driver not loaded解决办法:拷贝wamp\bin\mysql\mysql5.6.17\lib 目录下的libmysql.dll 和 libmysqld.dll 到QT的Qt\Qt5.6.0\5.6\mingw49_32\bin 目录下如果连接两个数据库,例如:原创 2017-09-22 21:46:16 · 723 阅读 · 1 评论 -
C++11 中的线程、锁和条件变量
转自:http://blog.jobbole.com/44409/?utm_source=rss&utm_medium=rss&utm_campaign=c11-%25e7%25ba%25bf%25e7%25a8%258b%25e9%2594%2581%25e5%2592%258c%25e6%259d%25a1%25e4%25bb%25b6%25e5%258f%2598%25e9%2587%258转载 2013-07-31 17:08:47 · 5353 阅读 · 0 评论 -
Linux 获取子进程的返回值
父进程 a1:a1.c#include #include int main(int argc, char* argv){ printf("a1 run\n"); int n = system("./a2"); printf("a2 return: %d\n", WEXITSTATUS(n)); return 0;}子进程a2:a2.c原创 2013-05-08 14:27:44 · 4595 阅读 · 0 评论 -
Linux共享内存(二)
转自:http://www.cnblogs.com/hicjiajia/archive/2012/05/17/2506638.html/*共享内存允许两个或多个进程进程共享同一块内存(这块内存会映射到各个进程自己独立的地址空间) 从而使得这些进程可以相互通信。 在GNU/Linux中所有的进程都有唯一的虚拟地址空间,而共享内存应用编程接口API允许一个进程使 用公共内存转载 2013-04-12 11:53:26 · 986 阅读 · 0 评论 -
遍历所有进程并找到指定进程停止
转自:http://blog.csdn.net/ghevinn/article/details/8722173 // testlog.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include #include #include u转载 2013-03-26 16:18:01 · 1375 阅读 · 0 评论 -
GDB调试手册
转自 程序人生:http://www.programlife.net/gdb-manual.htmlLinux 包含了一个叫gdb 的GNU 调试程序。gdb 是一个用来调试C和C++程序的强力调试器。它使你能在程序运行时观察程序的内部结构和内存的使用情况。以下是 gdb 所提供的一些功能:它使你能监视你程序中变量的值、它使你能设置断点以使程序在指定的代码行上停止执行、它使你能转载 2012-12-21 12:28:14 · 1977 阅读 · 0 评论 -
Linux下发生段错误时如何产生core文件
转自:http://www.cppblog.com/API/archive/2012/10/22/193644.htmlLinux下的C程序常常会因为内存访问错误等原因造成segment fault(段错误),此时如果系统core dump功能是打开的,那么将会有内存映像转储到硬盘上来,之后可以用gdb对core文件进行分析,还原系统发生段错误时刻的堆栈情况。这对于我们发现程序bug很有帮转载 2012-10-22 13:43:30 · 2084 阅读 · 0 评论 -
windows下查看dll导出函数
windows下查看dll导出函数dumpbin /exports abc.dlldumpbin是vs下的命令。原创 2012-09-25 18:10:41 · 5343 阅读 · 2 评论 -
Step By Step(C++模板Trait)
Trait是C++模板设计的一个基本应用技巧,通过应用Trait模板参数,可以在工业强度的程度设计中既保证了程序的灵活性,同时也有效的减少了类型参数的数量。对于普通函数而言,如果想要对该函数的功能进行更为细粒化的控制,一个主要的方法便是为该函数增加更多的参数,而函数体内的逻辑代码则会根据参数值的不同而选择不同的逻辑分支,最终返回不同的结果。一个极端的现象是函数的参数过多,而且并不是每个参数都会为每转载 2012-09-12 09:41:21 · 1030 阅读 · 0 评论 -
Step By Step(C++模板和继承)
转自:http://www.cnblogs.com/stephen-liu74/archive/2012/09/10/2637170.html一、命名模板参数: 有些高级脚本语言,如Perl、PL/SQL等,他们的函数参数在调用时都支持命名参数,既在调用时可以不按照顺序传递参数,而是p可以按照参数的名字传递。先看下面的代码示例: template转载 2012-09-12 09:42:46 · 755 阅读 · 0 评论