自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(63)
  • 资源 (4)
  • 收藏
  • 关注

原创 vm linux网络配置

vmware NET模式网络配置注意问题配置好了网络后,怎么主机和虚拟机linux怎么也连接不上。如果网络配置没有问题,复位vimware的网络配置功能参考https://blog.csdn.net/axing2015/article/details/81516627...

2021-01-30 14:31:03 187

原创 Bug定位体会

有的时候,当出现一些自己不认为不可能出现的错误的时候,在反复检查代码的过程中,也没有发现问题,这个时候,就不用太纠结在自己的代码上。要知道,你认为的代码没有问题,那只是你认为,有的时候,一些显而易见的错误,自己检查代码的时候,可能定位一整天也定位不到,但是其实是一个很小的问题。这个时候,就需要实际运行调试,在出现错误的机器上面调试,问题复现的时候,就会很简单的找到错误,比起自己埋头检查代码要好很多。复现问题,打日志调试,调试!!!!不要老是埋在代码找问题,有时候很简单的错误就是找不到,.

2020-10-26 16:06:18 180

原创 POCO网络库

最近研究如何将POCO网络库应用在高并发项目中,发现POCO在windows下面使用select模型,不适合做高并发的TCP服务器。当然用作HTTP服务器是可以的,因为HTTP服务器实现是这样的。通过线程池来管理多个HTTP连接,当并发连接超过最大的线程池数量的时候,连接排队等待线程处理中,只要处理速度足够块,高并发请求也可以响应,因为HTTP连接处理完成后,就断开了。但是如果是需要长连接,这种处理过程就无法满足了,而提供的select模型也不能应用,当然在linux下面可以使用epull.

2020-10-13 23:28:04 951

原创 C++继承中析构资源注意点

问题在使用自己实现的线程类的时候,偶尔会出现奔溃virtual ~thread() BOOST_NOEXCEPT {try {ensure_thread_over();}catch (…) {//avoid exception;}}class MyThread : public utils::thread{public:void run() {_run();}std::function<void() > _run;};这里, _run会析构掉,然后 ~thr

2020-09-16 11:09:43 165

原创 STL condition_variable一个bug

测试STL的 condition_variable 发现一个BUGVS2019运行如下代码时// condition_variable::wait_for example#include <iostream> // std::cout#include <thread> // std::thread#include <chrono> // std::chrono::seconds#inclu.

2020-09-09 21:43:37 320

原创 有关内存分配,赋值的时间测试

有关内存分配,赋值的时间测试#include <iostream>#include <common/utils.h>#include <common/TimeSpan.h>using namespace std;void Test(int mem_size) { cout << "========================" << endl; cout << "Test mem size = "; if (me

2020-08-21 00:27:15 236

原创 关于boost log库

最近使用glog遇到一些问题,想着尝试使用boost log,然后开始研究源码,在使用一个库之前,我必须能对源码有掌控,但是研究了几天后发现,实在是太复杂了,代码量很庞大,很多东西都是自己实现,包括ostream 都是自己实现的,让看的人很痛苦,比起 stl 源码,stl源码是很简单易懂的,所以放弃使用,当然boost也有简单的,比如pool, 代码量就很小,也简单,所有针对boost,那些用途广泛,会纳入到标准的,要研究透,然后使用它,比如bind,functional,有些没有必要研究,只是一个日志,

2020-08-15 00:22:02 222

原创 Android APP调试备忘

Android APP调试备忘安装签名不一致,提示无法运行,安装不上问题等检查 AndroidMainfest.xm 中 package=“com.example.whsarmclient” 和 build.grade 中 applicationId “com.example.whsarmclient” 是否一致命令行卸载 adb uninstall com.example.whsarmclient 或者 adb uninstall com.example, 保证能卸载干净日志文件不能生成

2020-08-13 10:30:42 124

原创 linux问题备忘

#库路径加载不到vi /etc/ld.so.conf编辑后如下:include ld.so.conf.d/*.conf/usr/lib

2020-07-02 21:02:03 128

原创 GIT使用备忘

GIT使用备忘一次添加多个修改文件一次添加多个修改文件git add -u

2020-03-18 22:35:47 164

原创 C++流扩展 streambuff-转载

C++流扩展 streambuff结合socket流的扩展参考链接结合socket流的扩展#include <WinSock2.h>///// out//no buffer class SocketOutStreamBuf : public std::streambuf { public: SocketOutStreamBuf(SOC...

2019-10-12 10:55:17 517

转载 github访问慢

1. 到https://www.ipaddress.com网站查询对应的域名的ip,然后添加到hosts文件即可2. 将以下代码复制到C:\Windows\System32\drivers\etc的hosts文件中#解决git clone 速度慢的问题192.30.253.112 github.com151.101.185.194 github.global.ssl.fastly.n...

2019-09-19 13:51:38 693

原创 map和hashmap性能测试

测试代码#include "stdafx.h"#include <set>#include <hash_set>#include <ctime>#include <iostream>#include <fstream>#include <common\TimeSpan.h>#include <win...

2019-08-24 17:00:35 644

原创 MFC文件的一个链接错误

记录遇到的一个诡异的编译问题使用ButtonST的时候,一个工程没有问题,当一个新的工程使用的时候,提示找不到CreateFile 和GetObject函数,但是这个两个函数在WINDOWS.H头文件里面肯定有的,花了好长时间,发现是链接到 POCO库里面去了,POCO的头文件污染了MFC的WINDOWS头文件所有在使用外部三方库或者类的时候,尽量不要在C源文件里面引用,不要...

2019-07-23 23:42:25 168

转载 编写Makefile

参考 https://www.cnblogs.com/prettyshuang/p/5552328.html阅读目录1、生成可执行文件的makefile 2、生成静态链接库的makefile 3、生成动态链接库的makefile  本文把makefile分成了三份:生成可执行文件的makefile,生成静态链接库的makefile,生成动态链接库的makefil...

2019-04-29 20:58:20 208

转载 boost库的编译总结

Boost官网的《Geting Started On Windows》(http://www.boost.org/doc/libs/1_38_0/more/getting_started/windows.html)提到了Boost库的命名,摘录如下:以 libboost_regex-vc71-mt-d-1_34.lib 为例:lib 前缀:除了Microsoft Windows之...

2015-01-19 22:20:18 1067

原创 explicit

class test{private: int _a;public: explicit test(int a) :_a(a) { } void print() { cout<<_a<<endl; }};int _tmain(int argc, _TCHAR* argv[]){ test a = 4; // ERROR test a(3); //必须

2014-09-17 23:42:54 512

原创 CTRLLIST用法

m_ctlList.EnableGroupView(TRUE);LVCOLUMN lv;lv.mask = LVCF_WIDTH | LVCF_TEXT;lv.cx = 300;lv.pszText = L"xxx";m_ctlList.InsertColumn(0, &lv);m_ctlList.InsertColumn(1, &lv);UINT nG

2014-08-14 00:29:47 1870

原创 log4cxx类的使用(简单封装)

Log4J采用类似C语言中的printf函数的打印格式格式化日志信息,打印参数如下: %m 输出代码中指定的消息 %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL %r 输出自应用启动到输出该log信息耗费的毫秒数%c 输出所属的类目,通常就是所在类的全名%t 输出产生该日志事件的线程名 %n 输出一个回车换行符,Windows平台为“rn”,Un

2014-07-31 12:27:50 2845

转载 Ubuntu下搭建FTP服务器

后台一直提示wordperss版本和插件有更新,看着碍眼,决定把它们全都更新。不过更新文件需要服务器提供FTP服务,linode也没有提供到FTP,只能自己装一个了。我装的服务器系统是Ubuntu 12.04 LTS,FTP软件当然是选择大名鼎鼎的vsftpd(very secure FTP daemon), 用系统自带的FTP还好Ubuntu装vsftpd还是很简单,一句命令就行:sud

2014-06-24 23:28:39 671

转载 do...while(0)的妙用

转自  http://www.cnblogs.com/flying_bat/archive/2008/01/18/1044693.html

2014-05-12 21:04:08 523

原创 TEMP

OnOpenNdiskIndex()有ON_COMMAND和ON_MESSAGE进行同一个消息的响应,不知道有什么区别boost::bind函数说明BOOST_FOREACH 和 for_each的区别thread_param_wrapper >* p = (thread_param_wrapper >*)lpParameter;LRESULT CSLabelT

2014-04-28 17:35:49 750

转载 原型模式(prototype)

一、概述:    用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。其中有一个词很重要,那就是拷贝。可以说,拷贝是原型模式的精髓所在。举个现实中的例子来介绍原型模式。找工作的时候,我们需要准备简历。假设没有打印设备,因此需手写简历,这些简历的内容都是一样的。这样有个缺陷,如果要修改简历中的某项,那么所有已写好的简历都要修改,工作量很大。随着科技的进步,出现了打印设备。我们只需手写

2014-03-27 16:24:22 656

转载 代理模式Porxy -- 动态代理待续

概述       因为某个对象消耗太多资源,而且你的代码并不是每个逻辑路径都需要此对象, 你曾有过延迟创建对象的想法吗 ( if和else就是不同的两条逻辑路径) ? 你有想过限制访问某个对象,也就是说,提供一组方法给普通用户,特别方法给管理员用户?以上两种需求都非常类似,并且都需要解决一个更大的问题:你如何提供一致的接口给某个对象让它可以改变其内部功能,或者是从来不存在的功能? 可以通过

2014-03-26 16:57:51 1355

转载 装饰者模式(Decorator)

软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最近看设计模式的书,对于每个模式,用C++写了个小例子,加深一下理解。主要参考《大话设计模式》和《设计模式:可复用面向对象软件的基础》两本书。本文介绍装饰模式的实现。       装饰模式:动态

2014-03-21 17:43:54 733

原创 软件设计重要原则

单一职责原则(SRP):就一个类而言,应该仅有一个引起它变化的原因。如何一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这个耦合会导致脆弱的设计,当变化发生时,设计会遭受到意想不到的破坏。典型的情况,就是界面与逻辑要进行分离。开放-封闭原则:软件实体应该是可以扩展的,但是不可修改。两个特征:对于扩展是开

2014-03-21 15:52:45 700

原创 简单工厂模式(Static Factory Method

概念讲解聚合(Aggregation):聚合表示一种弱的‘拥有’关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分【DPE】合成(Composition),组合:表示一种强的‘拥有’关系,体现了严格的部分和整体的关系,部分和整体的生命周期一样【DPE】简单工程模式基本介绍从设计模式的类型上来说,简单工厂模式是属于创建型模式,又

2014-03-21 11:53:06 1016

原创 字符串反转问题

#include /*Funtion: 字符串的反转操作 例如 “I am a student”反转为" student a am I";*/void translate(const char* src, char* des){ int len = strlen(src); char* p = (char*)src + len - 1; int count = 0; whi

2014-03-10 00:04:29 722

转载 二叉树的深度排序算法

int depth(BTree root){ int ldepth, rdepth; if (!root) { return 0; } else { ldepth = depth(root->lchild); rdepth = depth(root->rchild); return ldepth > rdepth ? ldepth + 1; rdepth + 1;

2014-02-26 10:49:53 1110

原创 一道有趣的面试题————待解决的问题

先贴代码#include #include #include using namespace std;class Y {public: Y() { cout<<"Y()"<<endl; } Y(const Y& y) { cout<<"Y(Y&)"<<endl; } ~Y() { cout<<"~Y()"<<endl; } void operato

2014-02-26 10:44:44 668

转载 快速排序算法_C++

快速排序使用分治的方法,把数列按基准为界,分为左小右大两个子数列。然后按递归的思路,对两个子数列再进行快速排序,最终把整个数列有序排列。#include using namespace std;templatevoid exchange(T arr[], int i, int j){ T temp = arr[i]; arr[i] = arr[j]; arr[j] =

2014-02-19 10:35:24 678

转载 UML类图关系大全

UML类图关系大全1、关联双向关联:C1-C2:指双方都知道对方的存在,都可以调用对方的公共属性和方法。在GOF的设计模式书上是这样描述的:虽然在分析阶段这种关系是适用的,但我们觉得它对于描述设计模式内的类关系来说显得太抽象了,因为在设计阶段关联关系必须被映射为对象引用或指针。对象引用本身就是有向的,更适合表达我们所讨论的那种关系。所以这种关系在设计的时候比较少用到

2014-02-18 16:09:05 776

原创 Effective C++读书笔记(一)

类和函数:实现条款29:避免返回内部数据的句柄。条款30:避免这样的成员函数,其返回值是指向成员函数的非const指针或引用,也不要返回函数内部用new初始化的指针的引用条款31:千万不要返回局部对象的引用,也不要返回函数内部用new初始化的指针的引用条款32:尽可能的推迟变量的定义条款33:明智的使用内联条款34:将文件间的编译依赖性降至最低

2013-12-31 17:49:25 529

原创 成员函数的静态变量

成员函数的静态变量与类的静态变量相同点:  都是属于类本身,而不是类的对象。不同点:  类的静态变量需要初始化,可以设置访问权限,供外部调用,而成员函数的静态变量的初始化是在第一次调用函数时发生,外部也不能访问。测试代码#include using namespace std;class A{public: void test(int n) { static

2013-11-27 17:25:41 731

原创 OpenThread中的condition和barrier

condition应用condition源码#ifndef _WIN32CONDITIONPRIVATEDATA_H_#define _WIN32CONDITIONPRIVATEDATA_H_#ifndef _WINDOWS_#define WIN32_LEAN_AND_MEAN#include #endif#define InterlockedGet(x) Interlo

2013-11-25 19:34:50 2967

转载 D3D显示FreeType读取的TFF字库

网上COPY的一段代码,进行了修改,效率有所提升,比IDirectFont显示字符的效率提高3-4倍,需要继续优化。1.纹理淘汰算法需要修改,LRU算法不错。#pragma once#include #include #include #include #include #include // 顶点数据结构struct FontVertex{ FontVerte

2013-11-08 18:34:31 3099 1

原创 操作注册表,关闭计算机

MSDN代码BOOL MySystemShutdown(){ HANDLE hToken; TOKEN_PRIVILEGES tkp; // Get a token for this process. if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES

2013-10-29 13:25:54 761

原创 虚函数在类继承中的用法

// TestConsole.cpp : 定义控制台应用程序的入口点。//#include using namespace std;//class Aclass A{public: A() { cout<<"A Constructed"<<endl; } virtual ~A() { cout<<"A Destructed"<<endl; } void f

2013-10-17 17:47:20 810

转载 C++ 智能指针详解

C++ 智能指针详解 一、简介由于 C++ 语言没有自动内存回收机制,程序员每次 new 出来的内存都要手动 delete。程序员忘记 delete,流程太复杂,最终导致没有 delete,异常导致程序过早退出,没有执行 delete 的情况并不罕见。用智能指针便可以有效缓解这类问题,本文主要讲解参见的智能指针的用法。包括:std::auto_ptr、boost::scoped_p

2013-10-14 12:55:56 627

原创 C++内存泄露的问题

遇到一个很头疼的内存泄露的问题,调试的大半天才发现的,指针指向的对象1被delete了两次,而在VS2005中,debug中断的位置不是这个被多次delete的对象1,而是另外一个对象2,在释放它的时候,提示访问了未知的堆栈。虽然没有在内存中仔细进行调试,不过可以揣测出问题原因是,在多次释放对象1的时候,释放掉了对象2的资源,导致在释放对象2的资源的时候,访问未知的堆内存异常,而对象2在代码中

2013-09-04 00:59:27 729

PDF目录制作工具

PDF目录制作工具 本人自制PDF目录用的,也贡献大家使用

2012-11-30

HTML教程 高清

不多解释,学习HTML最佳的教程,本人珍藏

2012-11-30

最新DebugView

我自己用的调试工具,谁用谁知道。

2012-08-21

空空如也

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

TA关注的人

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