- 博客(155)
- 资源 (33)
- 收藏
- 关注

原创 使用Node.js + socket.io搭建基于HTML5的在线聊天室
开发环境1、Node.js(1)安装Node.js安装Node.js:http://nodejs.cn/download/Node.js官方文档:http://nodejs.cn/(2)安装相关组件socket.io:npm install socket.iosocket.io中文学习文档:https://zhuanlan.zhihu.com/p/291488692...
2020-03-17 10:28:10
880

原创 使用Libcef+Duilib创建自己的Chrome内核浏览器
浏览器代码已开源:欢迎收藏https://github.com/JelinYao/MyChrome前言:编译Chrome开源代码是一件很恐怖的事情,代码庞大,还需要各种工具配合。在windows上快速开发chrome内核网页程序,Libcef是一个很好的选择。最近趁空闲时间,写了一个简单的浏览器,很多功能都没有完善,不知道以后还会不会继续写了,PC端确实是萎了。1、Libcef 的使...
2015-09-20 12:43:34
17077
26
原创 WinSock2.h和windows.h同时包括报错解决方案
把#include 移到#include 的前面,最好是直接放到stdafx.h中。
2016-12-25 21:21:43
2511
1
原创 C++实现常用排序算法(快速排序、冒泡排序、希尔排序、折半插入排序、直接插入排序)
#ifndef SORT_ALGORITHM_H_#define SORT_ALGORITHM_H_#include #include using std::cout;using std::endl;template//T为排序序列元素类型,len为序列元素数目class CSort{public: CSort(const T* arr); virtual~ CSort()
2016-12-18 22:01:43
2448
1
转载 详解YUV420数据格式
文章转载自http://www.cnblogs.com/azraelly/archive/2013/01/01/2841269.html,感谢原作者。YUV格式有两大类:planar和packed。对于planar的YUV格式,先连续存储所有像素点的Y,紧接着存储所有像素点的U,随后是所有像素点的V。对于packed的YUV格式,每个像素点的Y,U,V是连续交*存储的。
2016-11-30 22:00:40
745
原创 Windows上获取文件大小的几种方法及获取文件夹大小方法
获取文件大小Windows提供了好几个API函数来获取文件大小,还可以使用标准C和标准C++库函数来获取(当然了,标准库函数的底层实现也是调用了Windows API函数,效率上可能有所影响)。const wchar_t* pFile = L"C:\\chromium.tar";//文件大小9,332,330,496 字节 32位整形无法装下 HANDLE hFile = CreateF
2016-11-17 22:12:03
15777
2
原创 自己开发简单web服务器二(Node.js实现)
Node.js刚接触Node.js没多久,试用了一下,轻轻松松几行代码就可以实现一个简单的HTTP服务器,开发起来的确比其他语言快多了。Node.js是一个开源的JavaScript库,可以跨平台运行在Windows、Linux、Mac上。JS解析库用的是大名鼎鼎的Google V8引擎(chrome浏览器里使用的),网络处理库用的是libuv(Windows上试用IOCP实现,Linux
2016-11-08 22:43:15
7084
原创 自己开发简单web服务器一(C++开源库websocketpp实现)
简要Websocketpp,开源跨平台web库,网络请求使用boost::asio实现(Windows上是IOCP完成端口)。具体介绍可见以前的一篇说明:http://blog.youkuaiyun.com/mfcing/article/details/50118591。Web服务器主要处理客户端的http请求(GET\POST),这里主要介绍页面请求、文件请求等基本的功能。基本配置设置工作线
2016-11-04 21:11:19
17981
2
转载 DbgPrint格式 输出
DbgPrint 输出1) 直接打印字符串。DbgPrint(“Hello World!”);2) 空结尾的字符串,你可以用普通得C语法表示字符串常量char variable_string[] = “Hello World”;DbgPrint(“%s”, variable_string);3) 空结尾的宽字符串(WCHAR类型)WCHAR st
2016-10-23 20:51:33
1399
转载 内核模式下的字符串操作
原文转载自:http://blog.chinaunix.net/uid-24504987-id-153713.html,感谢作者。1)ASCII字符串和宽字符串 在应用程序中使用两种字符:a) char型字符串,负责记录ANSI字符集,它是指向一个char数组的指针,每个char型变量大小是一个字节,字符串是以0标志字符串结束的;b) wchar_t型的宽字
2016-10-23 20:50:33
1035
转载 realloc,malloc,calloc的区别
转载自:http://www.cnblogs.com/BlueTzar/articles/1136549.html,感谢作者。三个函数的申明分别是: void* realloc(void* ptr, unsigned newsize); void* malloc(unsigned size); void* calloc(size_t numElements, size_t size
2016-10-18 21:12:50
586
转载 error C2275 将此类型用作表达式非法
原文转载自:http://blog.youkuaiyun.com/lqk1985/article/details/7389159,感谢作者。C2275: “size_t”: 将此类型用作表达式非法,同时还导致一堆变量未定义的bug。将LuaXml从lua5.1移植到5.2的时候,使用VS2010编译LuaXml_lib.dll的时候碰到了这个错误,然而使用GCC能编译成功。
2016-10-18 21:12:21
6230
原创 Javascript(jQuery)中绑定页面上所有按钮点击事件的几种方式
方法一:使用document对象查找所有的按钮//按照dom的方式添加事件处理 function BindByDom() { try{ var htmlBtns = document.getElementsByTagName('button');//获取HTMLCollection对象集合
2016-10-12 22:36:12
20294
原创 jQuery requires a window with a document异常解决方案
npm install -g jquery默认安装jquery时,版本是最新版2.1.0,这个版本没有包括jsdom,需要额外安装一个jsdom。安装jsdom:npm install -g jsdom然后这么使用:var jsdom = require(“jsdom”);$ = require(“jquery”)(jsdom.jsdom().createWindow())
2016-10-09 20:59:52
7253
原创 libjpeg-turbo使用实例(编解码jpeg、jpg转bmp、bmp转jpg代码)
libjpeg-turbo库用于jpeg图像编解码,上一节说了编译过程:编译libjpeg-turbo 。现在说说jpeg的编码、解码使用方法。Windows上GDI接口支持的都是位图格式(DDB\DIB)图像,这里只说bmp编码成jpeg格式图片并保存到本地和jpeg解码成bmp格式并保存到本地。bmp转jpegint Bmp2Jpeg_Compress(void* lpBmpBuf
2016-09-23 22:12:05
17267
2
原创 Windows上编译libjpeg-turbo
简介: libjpeg-turbo,基于libjpeg,在性能上有大幅度提升,详细说明可以去官网看看。( On such systems, libjpeg-turbo is generally 2-6x as fast as libjpeg, all else being equal. ) 官网地址:http://libjpeg-turbo.virtualgl.or
2016-09-12 21:38:02
6855
1
原创 TortoiseSVN Clearup failed to process the following paths * is already locked.解决方法
更新SVN代码库时,由于有文件被占用导致更新失败,SVN会提示使用clearup命令清理,但是清理时一直出错,弹出下图窗口:也就是被锁定了,无论怎么清理都无法成功。解决方法:打开SVN数据库,删除锁操作即可。找到.svn目录下wc.db数据库文件(这个目录是隐藏的,需要在Windows文件夹选项中设置不隐藏才能看得到),安装打开SQLite数据库的软件打开。删除数据库锁(删
2016-08-03 09:38:29
2106
原创 Window上编译最新版libCef(Branch 2704)
1、开发环境搭建VS2010及以上版本,CMake 2.8.12.1及以上版本。我安装的是VS2013下载最新版的CMake:CMake官网下载,选择一个32位的MSI安装程序即可。安装完成后,将CMake路径加入到系统环境变量path中。我的安装在:C:\Program Files (x86)\CMake\bin。打开CMD命令行,输入cmake测试环境变量是否添加成功。2、下载
2016-07-29 17:14:11
6541
原创 Windows上面编译libx264
准备编译环境: 安装MinGW:下载一大推的插件,最重要是的gcc一定要下载,msys也要下载!安装完后,将这些bin目录加入到系统环境变量$PATH中去。 安装yasm:下载地址 http://yasm.tortall.net/Download.html。解压后把文件名改成yasm.exe,并放入到MinGW的一个bin目录下面去。(放哪去都可以,主要是这个目录必须加入到
2016-07-05 21:49:02
3044
转载 互联网公司的技术博客汇总-阿里腾讯百度等
淘宝中间件技术团队博客(推荐)他们的口号是:致力于成为中国第一,世界一流的JAVA技术团队!最新文章:1)阿里巴巴集团宣布正式加入Apache基金会2)解读calvin3)中间件技术及双十一实践·稳定性平台篇4)中间件技术及双十一实践·应用服务器篇5)中间件技术及双十一实践·消息中间件篇http://jm.taobao.org/淘宝搜索技术博客(推荐)经
2016-06-03 11:58:35
6045
原创 C++程序与Java程序网络传输文件测试
应用层不管用的是什么语言,在网络传输层都是遵循相同的协议(TCP/UDP......)。本文通过一个小例子测试了在同一台机器上,C++程序和Java程序之间传输大文件。Java程序作为服务器,监听本地端口号:12345。C++程序作为客户端,连接上服务器后发送传输文件请求,服务器接收请求后把一个大文件发送给客户端。(使用TCP协议)数据包包头部分的定义特别重要,由于这里不考虑那么复杂,每个数据
2016-03-26 16:14:01
2299
原创 QT线程发送消息通知界面小例
初学QT,有很多地方都不懂,靠着Win32开发的样子写程序到是出了不少问题,摸索中前进。不管是什么开发,都有一条基本的原则:不要在UI线程中进行耗时操作,这样会导致界面卡顿;不要在辅助线程中操作UI界面,这样会导致界面刷新不及时。对于基本的Windows程序,都少不了消息循环和往消息队列中发送消息的函数(SendMessage PostMessage)。查看基类头文件,可以看到详细的接口,一般
2016-03-21 22:43:21
12319
1
原创 使用Windows安装的最高版本IE内核加载内嵌页
void ChangeRegedit(const wchar_t* pExeName){if ( NULL == pExeName )return ;TCHAR szVersion[64] = {0}; DWORD dwSize = 64; HKEY hKey;// 先获取IE版本if (ERROR_SUCCESS == RegOpenKeyEx(HKEY_
2016-03-20 22:16:56
2617
转载 国内知名互联网企业开源项目简介及Git位置
阅读目录阿里腾讯百度网易新浪搜狐豆瓣大众点评阿里阿里的开源项目很多,这也跟@淘宝正明的开源态度密不可分。有很多重量级的项目,例如LVS、Tengine,或者很有实践价值的中间件,例如 MetaQ(分布式消息系统)、dubbo(RPC框架)、cobar(数据库中间件),或者是Java世界的工具,例如druid、fastjson。都说国内Java公司的技术架构大部分
2016-03-19 22:35:27
2525
转载 VS2013+QT5 界面中文显示乱码问题 解决方案
本方案适用于VS2013+QT5.3环境(编译器是VC) using namespace std;# pragma execution_character_set("utf-8")//文件的开头要声明字符编码UTF-8,这样输出中文字符串就能显示正常。qDebug() " 连接交易前置...成功" ;直接输出字符串是没问题了,但遇到char*[]这样的字符数组的
2016-03-19 22:31:02
5623
原创 分享修改Wke源代码后重新封装成Duilib控件的代码
前言 以前写过一个在Duilib中封装wke控件的文章:分享个Duilib中基于wke的浏览器控件,那个只是基于原始版本的wke代码编译出的头文件和dll封装的,使用中会发现网页的加载状态的回调并不及时,需要我们不断地去调用接口查询是否结束或者失败。最好的方法就是直接去修改源代码,所幸的是源代码工程已经整理得非常完善,下载下来后就可以用VS2008立即编译并且没有报错。(Wke源码位置:htt
2016-03-18 13:24:14
8451
5
原创 分享个C++封装Libcurl代码(支持下载文件、GET\POST、重定向断点续传等功能)
前言 前面分享过一个Windows上封装Winhttp和WinInet API的代码,结果下载页好评特别多(呵呵),谢谢大家赏脸。文章地址:开源一个C++实现的简单HTTP协议处理库,里面有代码资源下载地址。但是,在实际开发过程中我发现WinHttp API严重依赖微软的IE组件,下载过程中会出现些很少见的异常。(比如下载文件和使用chrome浏览器下载的文件不一样。。。。)因此,有必要替
2016-03-01 20:07:59
17487
7
原创 Libcurl中配置openssl使其支持https
下载代码首先请去下载编译openssl,前面有篇文章讲过:下载编译openssl然后,下载libcurl最新版编译:libcurl下载编译openssl下载完libcurl后用VS打开,支持VS2008 2010等版本,工程里面为我们配置了很多个选项,可以是静态库,也可以是DLL,还可以带上openssl的。编译完openssl后,创建文件目录:Openssl\inc32\op
2016-03-01 19:50:45
6843
原创 VC++代码刷新桌面图标和任务栏图标
刷新任务栏图标:SHChangeNotify(SHCNE_ASSOCCHANGED ,SHCNF_IDLIST ,NULL, NULL);刷新桌面图标:int nSize = GetSystemMetrics(SM_CXICON); HKEY hKey; RegOpenKeyEx(HKEY_CURRENT_USER, L"Control Panel\\Deskt
2015-12-17 22:25:17
7190
转载 TCP和UDP 协议发送数据包的大小
原文转载自:http://blog.chinaunix.net/uid-20180960-id-2998594.html,感谢作者。在进行UDP编程的时候,我们最容易想到的问题就是,一次发送多少bytes好? 当然,这个没有唯一答案,相对于不同的系统,不同的要求,其得到的答案是不一样的,这里仅对像ICQ一类的发送聊天消息的情况作分析,对于其他情况,或许也能得到一点帮
2015-12-11 13:03:30
7292
转载 Linux高性能服务器编程 第八章(高性能服务器程序框架)
转载自:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=22906954&id=4425122,感谢作者。8 高性能服务器程序框架服务器解构为三个主要模块:IO处理单元。四种IO模型和两种高效事件处理模式。逻辑单元。两种高效并发模式。存储单元。(暂不讨论)IO模型:阻塞IO非阻塞IO
2015-12-09 20:51:40
1826
原创 分享个C++日志记录类以及日志记录程序
前言个人觉得开发中比较重要的一点就是“不要重复发明轮子”,现在国外、国内开源软件遍地开花,尤其是Google,开源了一系列性能、架构特别好的代码,如果能够用开源的应该尽量避免自己造轮子。那么为什么不用log4plus呢?在这里我需要的是一个简单实用、轻巧的日志记录程序,log4plus对我有点臃肿,所以才自己花店时间写了一个简单的日志记录类。日志类实现刚开始想的是为了避免大量的读写程序
2015-12-01 21:48:12
15764
原创 使用开源C++项目WebSocketpp构建web服务器
1、WebsocketPP简介最近需要构建一个本地的服务器程序,处理PHP服务器发来的请求,看到微软的一个开源项目内部用到了这个开源库,于是就试着用了下,效果还好,主要是很容易处理Web请求并返回数据。(C++写程序来请求,然后用C++在WebsocketPP构建服务器处理请求,想怎么定义数据怎么加密都可以,因为都是C++程序,也不用学习PHP,想想就很美好)。WebsocketPP是一个
2015-11-30 21:28:40
32459
4
原创 开源小工具一:获取客户端内嵌IE控件(Internet Explorer_Server)的URL
做客户端开发的很多时候,我们需要查看别人的客户端里面嵌入的网页,查看里面的JS等等,于是就写了一个简单的工具来获取这些嵌入IE的客户端使用的地址。原理: 开启一个后台线程,不断获取当前鼠标所在位置的窗口句柄,通过这个句柄判断窗口class是不是IE的Internet Explorer_Server,然后通过COM接口来获取IE对象,通过接口获取其内部链接的URL地址。为了提高效率,使用快捷键来捕获
2015-11-26 20:31:01
3765
原创 使用LibMad解码MP3,Windows上播放MP3,MP3转WAV实例代码
概述:闲着也是闲着,就学习了下LibMad解码MP3(解码成PCM数据流),顺便把Windows上播放PCM,以及PCM文件转换成WAV文件学习了下。以前做过PCM转WAV,原理很简单,就是在PCM流前面加上一个WAV数据头。借鉴了网上的一些文章,感谢大家。LIbMad解码部分:在初始化LibMad前,我们需要定义回调函数//读取mp3资源的函数mad_flow input_fu
2015-11-22 12:35:11
5231
原创 安卓开发实例二:文件浏览器
概述:需求:显示手机内所有文件、文件夹,显示文件内容,对文件拷贝、删除等。实现:遍历文件,显示文件信息到ListView中;读取文件,显示到界面上;ListView添加菜单,处理文件操作。扩展:自定义Activity标题栏,创建后台服务播放MP3文件。代码:public class MainActivity extends Activity { public stat
2015-11-18 20:47:05
3665
转载 深入了解tcmalloc(一):windows环境下无缝拦截技术初探
文章转载自:http://my.oschina.net/u/877348/blog/272066,感谢作者。概述: 又到了一个总结提炼的阶段,这次想具体聊聊游戏引擎中使用的内存管理模块tcmalloc组件的使用心得。项目的前期曾经遇到过内存瓶颈,特别是windows系统下的客户端程序在经历长时间运行之后会出现内存占用率很高疑似泄漏的现象,排查了很久都没有找到
2015-11-07 10:42:50
3328
原创 Win32修改ListView控件扩展属性
创建一个ListView,以为就是和一般的控件一样:m_hLogList = ::CreateWindowEx(LVS_EX_HEADERDRAGDROP|LVS_EX_FULLROWSELECT|LVS_EX_DOUBLEBUFFER, L"SysListView32", NULL, WS_VISIBLE|WS_CHILD|LVS_REPORT|LVS_SINGLESEL|LVS_SH
2015-11-03 22:32:57
3960
转载 windows下编译及使用libevent
原文出自:http://www.cnblogs.com/luxiaoxun/p/3603399.htmlLibevent官网:http://libevent.org/windows 7下编译:编译环境: windows 7 + VS2010(1)解压libevent到F:\libevent\libevent-2.0.21-stable(2)打开Micro
2015-10-18 17:55:09
5407
原创 HTML5使用Canvas绘图小例
首先定义canvas标签,获取这个对象后,得到 CanvasRenderingContext2D对象 var canvas = document.getElementById("myCanvas"); var ctx = canvas.getContext("2d");CanvasRenderingContext2D 对象的方法方法
2015-10-12 21:01:27
4860
libjpeg-turbo编码、解码实例代码
2016-09-23
Windows上编译的libx264(源码+生成DLL、lib、def)
2016-07-05
windows上使用Libcef实例源码
2015-12-11
WebsocketPP C++构建Web服务器源代码
2015-11-30
VC++实现支持换肤半透明的MP3播放器
2015-01-25
C++实现HTTP处理类
2015-01-15
VC++图像分割、灰度处理源码
2013-10-12
MFC硬件检测
2011-09-18
MFC多用途文件编辑器
2011-04-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人