自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 资源 (5)
  • 收藏
  • 关注

原创 git fatal: Authentication failed for

git fatal: Authentication failed for

2022-06-06 16:48:20 220 1

原创 git保存用户名和密码,不用每次输入账号

实验环境:window10,安装git,tortoiseGit打开.gitconfig在[credential]下增加一项:helper = store

2022-05-24 10:30:58 303

原创 ATL服务程序编写

打开VS2013,文件--->新建--->项目,选择ATL名称自己随便取,确定下一步完成移除ServiceDemoPS项目核心代码 HRESULT InitializeSecurity() throw() { // TODO : 调用 CoInitializeSecurity 并为服务提供适当的安全设置 // 建议 - PKT 级别的身份验证、 // RPC_C_IM...

2021-10-29 10:38:13 494

原创 Android Studio打包apk

打开Android的工程项目,选择Build弹出对话框选择apkNextKey store path就是Key文件的路径,如果有Key文件就不用创建,没有就指定一个文件路径,点击Create new...就可以,剩下的随便填,Next选择一个生成版本,Finish就会在工程目录下生成对应的apk文件...

2021-08-27 16:00:40 109

转载 使用Ubuntu安装软件出现Unable to locate package错误解决办法

apt-get updateapt-get upgrade

2021-04-02 23:58:41 924

原创 CollaboraOnline在Ubuntu20.04下编译运行

1.安装Ubuntu 20.04 LTS server 64位的测试机,安装时要确保镜像地址可访问,我这里填的是:http://mirrors.aliyun.com/ubuntu/2.sudo apt install -y dialog3.sudo apt install -y libpoco-dev python3-polib libcap-dev npm \ libpam-dev wget git build-essential libtool \ ...

2021-03-18 17:20:24 1369 9

原创 go指针

go指针跟c语言里的指针类似go函数可以返回局部变量的地址。func fun() *int{ m := 1 return &m}var p = fun()fmt.Println(fun() == p) //falsevar n = flag.Bool("n", false,"newline")var sep = flag.String("s", " ", "separator")func main(){ flag.Parse() ...

2020-08-07 10:18:37 106

原创 go语言名称、声明

名称:简单的命名规则:名称的开头是一个字母(Unicode中的字符即可)或下划线,后面可以跟任意数量的字符、数字和下划线,并区分大小写。预留的关键字:break default func interface select case defer go mapstruct chan else goto package switch const fallthrough ifrange type ...

2020-08-06 17:40:13 159

原创 最大公约数

辗转相除求最大公约数法:int gcd(int a, int b) { int r; while (b > 0) { r = a % b; a = b; b = r; } return a;}

2020-08-04 15:41:46 136

原创 ShellExecuteEx启动进程失败

ShellExecuteEx启动一个进程,有时候会失败SHELLEXECUTEINFO中lpFile,lpDirectory参数带空格时候,需要在参数前后加上双引号

2020-07-29 10:42:12 2536

原创 stl map常用函数

//构造函数 //map() map<char, int> m1; //指定一个比较函数来创建map对象 struct KeyCompare { bool operator()(const char* s1, const char* s2) const { return strcmp(s1, s2) < 0; } }; map<const char...

2020-07-14 18:22:00 277

原创 stl multiset常用函数

//构造函数 //multiset() multiset<int> ms1; //指定一个比较函数来创建multiset对象 struct KeyCompare { bool operator()(const char* s1, const char* s2) const { return strcmp(s1, s2) < 0; } }; multise...

2020-07-14 17:39:48 320

原创 stl set常用函数

//构造函数 //set() set<int> s1; //指定一个比较函数来创建set对象 struct KeyCompare { bool operator()(const char* s1, const char* s2) const { return strcmp(s1, s2) < 0; } }; set<const char*, Key...

2020-07-14 16:33:16 159

原创 stl list常用函数

//构造函数 //list() list<int> l1; //explicit list(size_type _Count) list<int> l2(10); //list(size_type _Count, const _Ty& _Val) list<int> l3(3, 11); //list(const _Myt& _Right) list<int> l4(...

2020-07-14 15:24:48 236

原创 stl deque常用函数

//构造函数 //deque() deque<int> d1; //explicit deque(const _Alloc& _Al) deque<int> d2; //deque(size_type _Count, const value_type& _Val) deque<int> d3(3, 3); //deque(const _Myt& _Right) deque...

2020-07-14 14:49:20 227

原创 stl vector常用函数

//构造函数 //explicit vector(const _Alloc& _Al) vector<int> v1; //explicit vector(size_type _Count) vector<double> v2(12); //vector(size_type _Count, const value_type& _Val) vector<double> v3(10, 1.3);...

2020-07-13 14:49:29 142

原创 sqlite3_exec返回SQLITE_MISUSE(21)

sqlite3版本3.29.0sqlite3打开数据的路径中有中文时,sqlite3_exec会返回这个错误,将中文转utf8就好了

2020-07-10 18:00:09 1731

原创 nsis打包流程

https://blog.csdn.net/arvin0/article/details/56482370

2020-07-02 11:33:46 278

原创 c++11 thread

thread创建:void func(int i){ cout << "func" << endl;}thread t(func, 1);t.join();注意我们应该保证线程对象的生命周期在线程函数执行完时仍然存在。get_id获取当前线程id,hardware_concurrency获取cpu核心数,sleep_for让当前的线程休眠一定时间...

2020-05-19 10:42:01 106

原创 c++11 std::shared_ptr std::uniq_ptr std::weak_ptr

std::shared_ptr共享的智能指针,内部使用了引用计数,当引用计数为0的时候,内存就会被释放。智能指针的初始化: std::shared_ptr<int> p(new int(1)); std::shared_ptr<int> p2 = p; std::shared_ptr<int> ptr; ptr.reset(new int(2)); if (ptr) { cout << "...

2020-05-18 18:16:32 233

转载 c++模板的特化

https://blog.csdn.net/gatieme/article/details/50953564

2020-05-13 18:11:02 101

原创 placement new

c++中new和delete是一对操作符,我们经常用new申请内存,调用类的构造函数初始化对象,然后用delete调用类的析构函数,释放内存。还有一个不常用的new操作符,placement new,在我们需要时传入一个指针,此时会在该指针所指向的内存空间构造对象,该指针所指向的地址可以是堆、栈、静态存储区。struct MyStruct{ MyStruct(int a, int b) : m_a(a) , m_b(b) { } My...

2020-05-13 15:33:02 131

原创 c++11 可变参数模板类

可变参数模板类,如元组:template<class... Args>class tuple;递归和特化的方式展开参数包//可变参数模板类前向声明template<typename... Args>struct Sum;//定义展开参数的可变参数模板类template<typename First, typename... Rest>struct Sum<First, Rest...>{ enum{ value = S...

2020-05-13 11:46:06 454

原创 c++11 可变参数模板

打印可变参数的个数:template<class...Args>void f(Args... args){ cout << sizeof...(args) << endl;} f(1); //1 f(1, 1.2); //2 f(1, 'c', 2); //3递归展开参数包:template<typename T>void print(T t)...

2020-05-13 11:05:45 138

原创 c++11 其它的转换的traits

template<bool B, class T, class F>struct conditional; 如果B为true,则conditional::type为T,否则为F。typedef conditional<(sizeof(long long) > sizeof(long double)), long long, long double...

2020-05-11 11:52:01 79

原创 c++11 std::enable_if

c++11 std::enable_if原型如下:template<bool B, class T = void>struct enable_if;在判断条件B为true时才有效,默认类型为void。它可以在编译期检查模板输入参数是否有效。

2020-05-11 11:50:01 338

原创 c++11 类型的转换的traits

template<class T>struct remove_const; 移除consttemplate<class T>struct add_const; 添加consttemplate<class T>struct remove_reference; 移除引用template<class T>struct...

2020-05-08 11:27:19 193

原创 c++11 常用判断类型的traits

template<class T>struct is_void; T是否为void类型template<class T>struct is_enum; T是否为枚举类型template<class T>struct is_union; T是否为union类型template<class T>struct is_...

2020-05-08 11:05:24 442

原创 c++11 编译期常量定义

在c++11之前,在类中定义编译期常量的方法:template<typename Type>struct Size{ static const int x = 1;};template<typename Type>struct Size{ enum{ x = 1, y = 2 };};在c++11中定义编译期常量,无须定义static...

2020-05-08 10:34:37 1104

原创 项目中使用libuv做本地的http服务程序

使用libuv的http模块,做一个简单的本地http服务程序,直接贴上代码:class WebRouter {public: WebRouter () { } void serve(request& req, response& res) { if (req.url().path() == "/") { re...

2020-05-07 18:43:04 2201

转载 硬编码

硬编码是将数据直接嵌入到程序或其他可执行对象的源代码中的软件开发实践,与从外部获取数据或在运行时生成数据不同。硬编码数据通常只能通过编辑源代码和重新编译可执行文件来修改,尽管可以使用调试器或十六进制编辑器在内存或磁盘上进行更改。硬编码的数据通常表示不变的信息,例如物理常量,版本号和静态文本元素。 另一方面,软编码数据对用户输入,HTTP服务器响应或配置文件等任意信息进行编码,并在运行时...

2020-05-07 10:10:25 359

原创 c++11 std::forward

在函数模板中,需要完全依照模板的参数类型(即保持参数的左值、右值特征),将参数传递给函数模板中调用的另外一个函数。c++11提供了这样的一个函数std::forward,不管参数是T&&这种未定的引用,还是明确的左值引用或右值引用,它会按照参数本来的类型转发。forward会把左值传递给右值。struct A { int value; explicit A(...

2020-05-06 14:38:46 734

原创 c++11 std::move

std::move方法将左值转换为右值,方便实现移动构造。当一个对象内部有很大的堆内存或者动态数组时,有必要写move语义的拷贝构造函数和赋值函数,避免无谓的深拷贝,以提高性能。c++中所有的容器都实现了move语义,方便性能优化。move对于拥有内存、文件句柄等资源的成员的对象有效,对于基本类型,如int和char[10]数组等,如果使用move,任然会发生拷贝。...

2020-05-06 13:56:12 169

原创 c++11 右值引用

右值引用标记为T&&,在介绍右值引用前先了解什么是左值和右值。左值是指表达式结束后依然存在的持久对象,右值是指表达式结束时不再存在的临时对象。区分左右值,看能不能对表达式取地址,能取,是左值,不能取,是右值。所有具名变量或对象都是左值,而右值不具名。c++11中右值两个概念,一个将亡值,另一个纯右值。非引用返回的临时变量、表达式产生的临时对象、原始字面量和lambda表达式...

2020-05-06 13:43:38 119

原创 c++11 tupe

tupe元组是一个固定大小的不同类型值的集合,是泛化的std::pair,可以把它当结构体使用。构造一个元组:tuple<const char*, int> tp = make_tuple("sendpack", 8);或int i = 1;auto tp = std::tie(i, "aa");相当于:struct tp{ char* p; ...

2020-05-06 11:27:43 763

原创 c++11 lambda表达式

lambda表达式定义了一个匿名函数,并且可以捕获一定范围内的变量。形如:[capture](params) opt->ret{body;}capture是捕获列表,params是参数列表,opt是函数选项,如mutable,ret是函数返回值类型,body是函数体[]不捕获任何变量[&]按引用捕获作用域中的所有变量[=]按值捕获作用域中的所有变量[=,&am...

2020-05-06 10:29:13 103

原创 c++11 std::bind

std::bind将可调用对象与其参数一起进行绑定。绑定后的结果可以使用std::function进行保存。

2020-05-01 21:45:42 81

原创 c++11 std::function

c++可调用对象的几种定义1.是一个函数指针2.是一个具有operator()成员函数的类对象(仿函数)3.是一个可被转换为函数指针的类对象4.是一个类成员变量指针5.是一个类成员函数指针void func() {}struct Foo{ void operator () (void){ }};struct Foo2{ using cb...

2020-04-30 18:33:03 256

原创 c++11 基于范围的for循环

基于范围的for循环auto自动推导出的类型是容器中的value_type,而不是迭代器新的for循环,冒号后面的表达式只会执行一次std::vector<int> arr = { 1, 2, 3, 4, 5 };std::vector<int>& get_range(){ std::cout << "get_range" <&...

2020-04-30 12:39:37 110

原创 c++11 列表初始化

c++11中,初始化列表的使用范围被大大增强了。首先看看聚合类型定义:1.类型是一个普通数组(如int[3])2.类型是一个类(class、struct、union)且无用户自定义的构造函数无私有或保护的非静态数据成员无基类无虚函数自定义的构造函数:struct B{ int x; int y; B(int, int) ...

2020-04-30 08:26:08 181

win10下多屏壁纸设置,窗口显示源代码

使用qt5+vs2013编写,可以多屏设置壁纸,显示窗口

2021-11-05

qt下c++与js相互调用源代码

使用qt5+vs2013编写,c++与js相互调用

2021-11-04

Windows服务程序进阶版源代码

使用vs2013编写,ATL服务程序,可以监控系统注销、锁定、解锁、恢复、快速启动等事件

2021-10-29

Windows服务程序初级版源代码

使用vs2013编写,ATL服务程序

2021-10-29

清除vs编译过程中产生的临时文件、目录

bat脚本文件,可以清除vs编译过程中产生的临时文件、目录

2021-10-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除