自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

jadedrip的专栏

C++ 爱好者

  • 博客(78)
  • 资源 (13)
  • 收藏
  • 关注

原创 Markflow —— 简洁、优雅的在 Markdown 里绘制流程图

Markflow—— 简介、优雅的在 Markdown 里绘制流程图作为一个程序员,给别人写文档时,总需要加几个流程图。而现在写文档基本都使用 Markdown 来写,因为即使对方没有相应的渲染,源文件也可以无障碍的阅读。 个人觉得这时 Markdown 语法最大的亮点,于是就涉及到了一个问题,如何在 Markdown 文件中画流程图? 搜索了一下,一般的解决方案是采用 Flowchart.js

2017-01-02 18:01:25 11103

原创 Gradle 打的包 Tomcat 解不开:LifecycleException

Gradle 打的包 Tomcat 解不开:LifecycleException昨天用 Gradle 打的包,放 Tomcat 里解不开 gradle 打的 war 包,tomcat6 启动的时候报错:严重: ContainerBase.addChild: start:LifecycleException: Error initializaing : java.lang.NullPointe

2016-06-21 14:07:32 2112

原创 踩坑记:httpComponents 的 EntityUtils

今天写的一个服务程序,有人报告获得的数据中文乱码,而我是用 apache 通过 httpComponents 去取得数据的,于是开启日志的 debug 级别。在日志里果然发现中文不见了,有乱码出现:2014-07-02 16:35:01.348 DEBUG [Wire.java:86] http-outgoing-8 "1.0" encoding="UTF-8"?>... subje

2014-07-02 17:38:58 6924

原创 少写了 @ResponseBody 引发的古怪问题

最近在 Tomcat 里写一个异步的 HTTP 服务端,出于方便的考虑使用了 Spring MVC 注解来搞定,然后就发生了诡异的结果。代码如下:    @RequestMapping("/test")    public DeferredResult test(            final @RequestParam(required = true) String uid,

2014-06-11 11:19:33 2274

原创 修复剑灵新装系统后不能玩的问题

其实是缺少 VC 的运行时库,去这里下载:http://www.microsoft.com/zh-cn/download/confirmation.aspx?id=26347另外,游戏目录里有个 components,里面有过 DXSetup.exe 是装 DirectX 的,也装一下。升级了 Windows 8.1,TX 的游戏就全挂了,悲剧啊!于是用 VHD 装了个 Windo

2013-11-25 17:13:41 2443

原创 全新的内存分配算法(折纸算法)

全新的内存分配算法,这个算法适合可变长对象,并且经常要扩展的内存块的分配,比如字符串。是空间换时间的算法。想象一张长长的纸条,不断的对折它,就可以把纸条分成一格一格,而且每次对折格子小一半,数量多一倍是吧。这个算法和这个过程很想,因此我命名为折纸算法。

2013-10-17 22:50:39 3297 3

原创 谈谈 C++ 和 Java 的区别

我有多年的 C++ 开发经验,但是最近由于公司的关系,不得不转 Java。看了几天 Java,谈谈感想。     经验丰富的 C++ 程序员应该可以很容易转到 Java 上来,因为他们有许多相似之处,基本语法是完全一样的,只是 Java 砍掉了大量的 C++ 特性,仅仅保留了类相关的部分,在 Java 的世界里,一切都是类。

2013-09-29 10:07:14 2156 1

原创 疯狂的预编译加类型推导能孵化什么吗?

Boost 是个庞然大物,也许很多人已经把它用得很顺了,不过它包含的两个库 MPL 和 Preprocessor 应该大部分人都不会熟悉。MPL 是用来进行模版元编程的工具,它将一些对象的推导工作做了抽象,可以把类型放入容器,在编译期实现一些很神奇的功能。Preprocessor 为预编译提供了一系列的工具,帮助通过预编译来生成代码。它们的结合帮助你在编译期实现很多强大的功能。

2013-09-04 15:25:09 2076

原创 TBB 的 BUG?

Threading Building Blocks 是很优秀的一个库,个人用得很多。近几天调试程序的时候,发现 tbb 的 _concurrent_queue_impl.h 166 行左右有这么一段代码: void assign_and_destroy_item( void* dst, page& src, size_t index ) { T& from

2013-08-15 08:59:51 2014 1

原创 "优雅"的C++观察者模式实现

C++ 是一种强类型的编程语言,于是最近一直在头疼如何实现一个比较优雅的观察者模式。如果一个事件附带的参数不同的时候,是否可以使用统一的界面来注册?比如我定义了一个事件,A,参数是 int,而事件B的参数是 string,如果采用统一的注册接口?最先想到的办法是事件用int 定义,采用 boost::any 来传递参数,而结束函数统一写成 void hand( boost::any a ) 这

2013-04-28 16:37:42 3268 2

原创 cmake 按构建类型指定不同文件名

cmake 生成工程的时候,很多教程都告诉你 CMAKE_BUILD_TYPE 是构建类型。原本想用这个来判断是否Debug 模式,并写if来修改文件名。但是,这个变量其实仅在生成 Make 文件这种非 multi-config下才起作用,在生成 VC 工程文件这样的 multi-config 里构建器里,仅会有一个叫 CMAKE_CONFIGURATION_TYPES 的变量。   不要

2013-03-08 15:09:01 4720

原创 像脚本语言一样写C++

疯狂的类型推导+虚函数+RTTI,会带来怎么样的东东?最近写了一个好玩的类 object, 目标是可以像脚本语言一样,存放任意类型,做任意操作。目前完成了大半,有兴趣的朋友可以拿来玩玩。 这个类可以这么玩void main(){    using namespace lugce;     /// 当字符串    std::stringzz="zz";

2013-01-17 17:09:25 2727 3

原创 右值引用如何改变你的程序?

点击查看

2013-01-15 14:23:00 1864

原创 玩 Diablo3 前要会写脚本

我的笔记本电脑带 nVidia 的 SLI 功能,所以开游戏前要先切换到 高性能 (电源计划),以便打开 SLI,然后玩我的 Diablo III。结束后还要记得切换回 节能模式,免得费电和笔记本发热。而 Chrome、Vistual Studio 2010 等软件会阻止 SLI 开启,因此开启前还要关掉它们……反正为了开启 Diablo III,要做一大堆,有时候忘了某步,进了游戏才发现

2012-06-29 09:35:59 2704

原创 boost.string_algo - 字符串算法库 使用点滴

用来记录零碎的知识,防止自己忘了判断一个字符串是否全为数字:boost::all( str, boost::is_digit() );

2011-08-04 17:09:43 2796

原创 boost.asio 使用点滴

用来记录一些零散的知识点,防止自己以后忘了。socket 的 async_connect 被调用以后,is_open 立刻就会返回 true。

2011-07-20 16:26:32 2150

原创 中国象棋将帅问题的另类解法

<br />编程之美里有个将帅问题蛮有意思的,该问题的具体描述是:(根据中国象棋的基本原则)在只有双的将帅棋盘上,找出所有双方可以落子的位置(将帅不能碰面),但只能使用一个变量。<br /> <br />解法一般也就是 循环然后判断去除重复位置。而对于只能用一个变量的限制一般通过把变量拆成2个来解决。<br /> <br />我有一个全新的思路,不做判断,不拆变量,直接用计算来解决问题。<br />附算法源程序:<br />int _tmain(int argc, _TCHAR* argv[]){

2011-05-11 11:01:00 2463 2

原创 用来分析 Url 的正则式

用来分析 Url 的正则式

2011-04-02 15:03:00 2145

原创 四则运算的源代码

借助堆栈实现的四则运算的源代码。输入一个字符串,可以计算值。支持加减乘除、小数点、括号。

2010-10-14 17:03:00 2949

原创 VC 2010 的 Lambda 是美丽的语法糖

Lambda 是个函数对象,因此不能内联优化。

2010-09-16 10:16:00 2496

原创 再谈 高性能无锁(Lock-free) 内存池

讨论无锁(Lock-free)算法的效率问题

2010-08-12 14:08:00 5081 2

原创 高性能无锁(Lock-free) 内存池

由于懒惰,一直脱到现在才完成,实在是罪过啊!很快会用它来改写我的无锁容器,嗯,如果我不懒惰的话。稍微解释一下关键问题:先分配一块内存,然后将内存划分为等大的内存格。每次调用 alloc 就分配一块内存格出去。可分配内存是个链表,这个链表被直接贮存在未分配的内存里。换句话说,未被分配的内存格里存放了一个指针,这个指针指向下一个未被分配的空闲内存格。另外,为了我们分配的内存可以被正确释...

2010-08-04 10:42:00 7440 10

原创 多线程无锁(lock-free)队列(queue)的实现探讨

前面我实现了一个无锁堆,下面打算实现无锁的 FIFO 队列。

2010-06-20 20:49:00 11755 2

原创 多线程无锁(lock-free) 堆的实现

堆的多线程化处理比较简单,它只有一个指向堆顶的变量需要竞争,因此我们可以很方便的用 cas 操作来完成。/* * Copyright (C) 2010 Chen Wang ( China ) * Email: jadedrip@gmail.com * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General

2010-06-18 15:22:00 3088 5

原创 用C/C++为 Lua 脚本设置全局表变量

Lua 使用压栈的方式,通过 C++向 Lua 传输数据。因此我们想为 Lua 环境设置全局的表变量时,可以这么做://把环境变量导入到 lua 的全局表 "environ" lua_newtable(L);//创建一个表格,放在栈顶 lua_pushstring( L, key ); lua_pushstring( L, value ); lua_settable( L,-3 );//弹出key,value,并设置到table里面去 lua_pushnumber( L, ikey );

2010-06-13 10:23:00 3108 1

原创 构建 Lua、LuaBind 的 C++ 编译环境

我写了部分 bjam 脚本来编译一些第三方库,以便能更方便的在 VC 中使用。主要原理是使用 boost 的库命名规则,以防止连接错误。这里主要涉及:lua, luabind. 附赠 cryptopp、curl、openssl、sqlite

2010-06-12 11:28:00 4221

原创 通过 LuaBind 让 C++函数返回Lua表

由于要返回表,我们的C++函数需要返回 luabind::object 对象。并且在绑定时指定 raw 策略。

2010-06-12 10:22:00 3697 5

原创 免费的数据库建模工具

<br />最好的数据库建模工具自然是 PowerDesigner,可惜它是收费的。在软件知识产权保护越来越被重视的今天(公司有人来检查盗版),只能找免费的软件了。<br />这里推荐 SQL Power Architect http://www.sqlpower.ca/page/architect<br />虽然是商业的,但是有免费开源版本,功能对基本建模足够了。<br /> <br />曾经试用了 OpenSystemArchitect,可惜它不支持中文(文件重新读入,中文就成?了),只好作罢。

2010-06-08 16:54:00 2010

原创 使用 Crypto++ 里的 Blowfish 加密数据

BlowFish算法用来加密64Bit长度的字符串,它所使用的密钥是对称的。Crypto++ 里的 Blowfish 加密使用起来非常简单。

2010-05-31 17:09:00 1699

原创 使用 bjam 构建 crypto++

最近打算使用 crypto++ 5.6.0 , 由于我的机器上装了不同版本的 vc, 为了构建方便,写了 bjam 的构建脚本,可以方便的用不同的编译器编译库和DLL,十分方便。 jamroot 文件import os ; import pch ;import path ; import common ; default-build = debug

2010-05-28 16:40:00 1231

原创 获取成员变量类型

这应该是模板元编程里的概念吧,有时候我们确实需要获取成员变量的类型,这里提供一个方法借助模板的偏特化达到目的:templatestruct MemberType;templatestruct MemberType{ typedef F member_type; typedef T class_type;}; 假设我们有个结构定义如下:struct Call

2010-05-12 16:47:00 1252

原创 也谈生成不重复的随机数系列(洗牌算法)

  偶尔看到有人在讨论如何生成不重复的随机数系列(洗牌算法),发现他们用的方法复杂度十分高,要抛大量的随机数,因此把我以前用的洗牌算法也拿出来秀秀。 假设需要生成 1~54 的随机数,那么把 1~54 放入“未洗牌数组”,抛 0~53 的随机数,把指定序号的牌,放入“洗好牌的数组",然后用未洗牌数组中最后一张牌替换已经被拿走的牌。下一步,抛 0~52 的随机数…… 重复 53 次就

2010-05-10 11:13:00 2952 18

原创 注意!Cegui 修改了DX渲染目标,会导致DX混乱

最近在我的 DirectX 中添加了 Cegui (v0.7.1), 奇怪的发现原来正确的 DirectX 的绘制变得十分混乱,仔细查找后才发现,Cegui 改变了渲染目标而没有改回来,从而导致了我的 DirectX 渲染到了 Cegui 的底层窗体上。 因此,调用 Cegui 的渲染函数后要恢复渲染目标: IDirect3DSurface9 *_surface;device-

2010-03-02 15:45:00 821

翻译 InternetOpenUrl 函数

  InternetOpenUrl函数通过一个完整的FTP,Gopher或HTTP网址打开一个资源。HINTERNET InternetOpenUrl (__in HINTERNET hInternet ,__in LPCTSTR lpszUrl ,__in LPCTSTR lpszHeaders ,__in DWORD值dwHeadersLength ,__i

2010-02-20 13:11:00 6424

原创 解数独游戏的源代码

公司搞了个小活动,让大家玩数独游戏,作为一个程序员,第一考虑就是用 C++ 穷举,于是就有了下面的代码:#include "stdafx.h"bool check( int buf[9][9], int j, int i ){ int v=buf[j][i]; // 检测横向是否有冲突 for( int l=0; l<9; l++ ) if( (l!=i) && (b

2010-01-22 14:22:00 1143

原创 从零创建最简单的 ogre 程序

般的 ogre 教程貌似都是从已有的例子框架开始创建 ogre 程序的,这篇文章教你从零开始,创建一个能显示一条龙的 Ogre 程序,这个程序只有最少的代码,没有其他功能,方便你理解 ogre 的一些基本概念。 开始一个新的 Win32 程序,你可以删除所有代码,只需要保留 WinMain 的声明。(让我们从零开始) 在 stdafx.h 里添加头文件包以及 lib 文件引用:

2009-12-31 09:32:00 1323

原创 使用 boost::signals2 的智能连接管理

boost::signals2 提供了使用智能指针的连接管理。可以通过下面的代码生成智能连接: using namespace boost::signals2;boost::shared_ptr class_ptr;   // 这是观察者的智能指针 signal shoter;   // 这就是我们的信号发射器了 typedef signal::slot_type sl

2009-11-11 16:04:00 1529 2

原创 如何判断当前是否全屏程序

static BOOL IsFullScreenActive() {   /*  这个函数获取屏幕4角的窗口的进程句柄,判断与激活句柄是否相等的方式来判断是否全屏程序。  特别的,对 IE 之类的多标签多进程程序,子窗口的进程会和主窗口不同。需要获取窗口的主窗口来对比才可以  */  struct IsNotSameProcessID  {   IsNotSameProcessID( DWORD

2009-09-07 14:03:00 1874

原创 小心使用 RedrawWindow 和 InvalidateRect

当父窗体设置了 WS_CLIPCHILDREN 的属性后, 默认状态下,RedrawWindow 和 InvalidateRect 不会导致子窗体重绘,因此,如果子窗体同时设置了 WS_EX_TRANSPARENT 属性,子窗体就会被父窗体刷没了。解决的办法是 RedrawWindow 的时候添加 RDW_ALLCHILDREN 标志,强制子窗体也重绘,而不要使用默认的 RedrawWindo

2009-09-02 09:40:00 1815

原创 Boost 又升级到 1.40.0 了

最近 boost 很活跃啊,升级好快。

2009-09-01 09:14:00 630

opencv-contrib-4.8.0.tar.gz

opencv_contrib github 下载太慢,放这里帮帮大家

2023-11-06

jdk-15.0.2_windows-x64_bin.exe

Oracle Java sdk v15.0.2

2021-01-22

LLVM-8.0.0-win64

LLVM是构架编译器(compiler)的框架系统,以C++编写而成,用于优化以任意程序语言编写的程序的编译时间(compile-time)、链接时间(link-time)、运行时间(run-time)以及空闲时间(idle-time),对开发者保持开放,并兼容已有脚本。 这里是 8.0 x64 版

2019-03-25

cmake-3.13.4-win64-x64.msi

新版本的 cmake: cmake-3.13.4-win64-x64.msi Make是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。

2019-03-13

amule 2.3.2 Windows Release

amule 2.3.2 的 Windows 可执行版本

2017-05-01

boost_1_63_0.7z

最新 Boost 源码

2017-03-10

resiprocate 1.8.12

就是官网的源码包,下载慢的可以下这个。 ReSIProcate同样也是由SIPFoundry开发,ReSIProcate最开始起源于Vocal,由于Vocal开始只支持rfc3254,为了支持最新的rfc3261,ReSIProcate诞生了,但现在,ReSIProcate已经成为一个独立SIP协议栈了,它十分稳定,并且很多商业程序都在使用。   SVN : http://scm.sipfoundry.org/viewsvn/resiprocate/main/sip/   Language : C++   VxWorks port : No   Win32 port : Yes   Linux port : Yes   Supports RFC 3261 : Yes   Supports RFC 2327 : Yes   Supports RFC 3264 : Yes   Supports RFC 3263 : Partial Supports RFC 3515 : Yes   Supports RFC 3262 : No   Supports RFC 3311 : No   TCP : Yes   UDP : Yes   License : Vovida   Document : Few   Samples : None

2013-08-26

resiprocate 1.6 源码包

就是官网的源码包,下载慢的可以下这个。 ReSIProcate同样也是由SIPFoundry开发,ReSIProcate最开始起源于Vocal,由于Vocal开始只支持rfc3254,为了支持最新的rfc3261,ReSIProcate诞生了,但现在,ReSIProcate已经成为一个独立SIP协议栈了,它十分稳定,并且很多商业程序都在使用。   SVN : http://scm.sipfoundry.org/viewsvn/resiprocate/main/sip/   Language : C++   VxWorks port : No   Win32 port : Yes   Linux port : Yes   Supports RFC 3261 : Yes   Supports RFC 2327 : Yes   Supports RFC 3264 : Yes   Supports RFC 3263 : Partial Supports RFC 3515 : Yes   Supports RFC 3262 : No   Supports RFC 3311 : No   TCP : Yes   UDP : Yes   License : Vovida   Document : Few   Samples : None

2011-03-29

bjam 第三方库编译脚本

lua, luabind,cryptopp、curl、openssl、sqlite 的 bjam 编译脚本。 参考文章:http://blog.csdn.net/jadedrip/archive/2010/06/12/5666077.aspx

2010-06-12

DXUT框架剖析 CHM 版

DXUT(也称sample framework)是建立在Direct3D API之上的Direct3D应用程序框架,有了DXUT这样一个Direct3D程序框架,只需在这个框架的基础上编写相应的代码,从而简化了 windows和Direct3D API的使用,可以高效地进行Direct3D程序设计。 收集自:http: //www.cppblog.com/lovedday/

2009-12-15

MFC程序员的WTL指南 (第二版) 【CHM】

MFC程序员的WTL指南 (第二版)珠穆朗玛翻译 CHM 格式

2007-11-19

MFC程序员的WTL指南 第二版[CHM]

珠穆朗玛 译的 MFC程序员的WTL指南 第二版 CHM 格式文件

2007-11-19

空空如也

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

TA关注的人

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