自定义博客皮肤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)
  • 收藏
  • 关注

原创 防止窗体显示时获取输入焦点

MFC 的 Dialog 创建时有时会被设为前台窗口,导致 ShowWindow(SW_SHOWNOACTIVATE); 无效,因此只能在创建前  GetForegroundWindow(); 窗体创建成功以后再 SetForegroundWindow(); ,然后 ShowWindow(SW_SHOWNOACTIVATE); 就有用了。

2009-08-06 09:20:00 666

翻译 InternetOpenUrl 函数 ( MSDN 翻译 )

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

2009-06-19 16:32:00 3996

原创 C++、数据库、模板、操作符重载、乱想

正在考虑如果封装数据库操作,以便隐藏更多数据库的细节,让不懂 SQL 的开发者可以用 C++ 来描述他所要做的。 使用模板、操作符重载,也许我们能写出 这样的代码: struct Item {     int id;     int value;     int useless; };     Database db("database_name");     db.Open( "ro

2008-07-02 13:37:00 783

转载 Scarborough Fair 天籁

《Scarborough Fair》诗经体译词如下(英中对照)  诗经体的歌词                                   英文原歌词       《斯卡博罗集市》                          Scarborough Fair问尔所之,是否如适。  Are you going to Scarborough Fair?蕙兰芫荽,郁郁香芷。  Parsel

2008-04-15 10:06:00 6561 3

原创 基于状态机思想的 Xml SAX解析器

学习状态机的练习之作,使用 switch 的方式。 不多说,看代码:/// 节点开始 class fsm_xml; class fsm_attrib { // 获取属性值 public:  fsm_attrib() { _state=0; }  void init(){ _state=0; _attrname.clear(); _attrvalue.clear(); }  const ws

2008-04-07 09:19:00 984

原创 Lockfree 习作:最多保存56个对象的简单容器

/// 最多可以存放 56 个数值的容器 template class SafeValuePool { public:  SafeValuePool() : _mark(0) {}  uint8 lock()  {   for( ;; ){    for( int i=0; i     assert( (_mark & 0xFFFFFFFFFFFFFF00LL)== 0xFFFFFFFFFFFFF

2008-03-17 14:09:00 779

原创 Lockfree 程序中内存释放的另类方法

C++ 的 Lockfree 程序中的内存释放问题是个很大的难点,甚至有些时候被认为是无法解决的,除非C++改变。这里提出一个比较另类的解决方案,希望能起到抛砖引玉的作用。一个对象安全删除的难点在于不知道有多少线程正在访问它,因此一个线程很难确定自己正在读的对象没有被其他线程删除,这里我使用逆向思维的办法来解决这个问题。对于一个 Lockfree 容器,线程访问时,进行注册,将一个Lockfr

2008-03-16 21:57:00 1176 2

原创 C++ 中 inline 的处理

首先声明,我使用的是 Visual Studio 2008. 对其它编译器是否如此不做保证。1. inline 关键字写在声明和实现里 是一样的。2. inline 函数的实现应该写在头文件中,除非只在当前的c文件中使用。(由于没有函数实体,因此连接器是找不到它的)3. inline 函数传入的参数和普通参数规则相同,也就是说,如果传入一个对象,这个对象会被复制(复制构造函数会被调用)。4.

2008-03-13 14:52:00 643

原创 无锁(lock-free)队列的一个简单实现

作为 无锁的 ( lock-free ) 线程安全算法 的一个习作吧。思想、算法十分简单。#ifdef WIN32 inline void sleep( uint32 mil ) { Sleep( mil ); } inline bool CAS(void* pDest, uint32 cmp, uint32 xchg){ return Interloc

2008-03-06 14:18:00 3096 5

原创 C++ 模板类型推导过程中的隐式类型转换

在一篇 《CUJ:高效使用标准库:显式函数模板参数申明与STL 》中发现了这么一端话:  基于全面,需要指出,对我们的例子的自动参数推导中,左值到右值的转换不是在推导出模板参数前所使用的唯一一个隐式类型转换。  在决定模板参数类型前,编译器执行下列隐式类型转换:     左值变换    修饰字转换    派生类到基类的转换  见《C++ Primer》([注2]

2008-02-25 10:40:00 3196

原创 胡思乱想 C++ 模板

突然有个想法,在这里记录下来。C++ 委员会的工作人员正在给C++的模板添加更多特性,那么干嘛不直接把模板直接做成可编程的?直接支持 For 循环等等编程能力,而不用使用一大堆偏特化之类的技巧来完成本来很简单的工作(比如循环)。比如这样的代码:templatevoid func( T );templatevoid func( T ){}t

2008-01-31 09:44:00 758

原创 bjam 使用点滴(连接目录)

设置连接库的查询目录,是使用 exe 【工程名】 : 【源文件列表】 : $(includes) : $(libpath) ; 

2008-01-23 08:56:00 1374 2

原创 也谈构建自己的标准流缓冲 【操作Pipe的流缓冲】

研究了半天总算有了一点概念。下面是 basic_streambuf 里和缓冲区相关的几个成员函数。对于输入缓冲区:eback() : 指向输入缓冲起始的位置gptr() : 返回指向下一个读取元素所在的位置egptr() : 返回指向最后一个可读元素(注意,这个指向的不是你创建的缓冲区的结尾)// 对于输出缓冲区pbase(), 指向输出缓冲的起始位置pptr(), 指向下一个可写的位

2007-12-30 11:49:00 891 1

原创 PlaySound 播放资源时的非法操作

用 Windows API PlaySound 企图播放 资源文件里的 Wave 文件的时候,发现第二遍播放没有声音,于是写了段测试代码:for( int i=0; i     PlaySound( MAKEINTRESOURCE(IDR_WAVE1), NULL, SND_RESOURCE  | SND_SYNC | SND_NODEFAULT );  然后就很意外的发现执行第二遍的时候,P

2007-12-13 15:34:00 1602

原创 使用 dbghelp.dll 进行 Release 除虫

参考: http://blog.csdn.net/ArCoolGG/archive/2007/04/05/1553027.aspx 首先,写一个 异常处理函数。std::ostream& operator {  //   return os         }// 这个处理函数调用 Nick  的 minidump 创建 dmp 文件。#include "minidump.h"LO

2007-10-16 15:04:00 3335

原创 bjam 使用备忘录

编译静态库的时候,在相关 jam 文件中,添加如下代码。# 默认编译配置(默认编译4种最常用的库类型)    default-build =        debug release        multi        static        ;    if [ os.name ] = NT    {        default-build += static shared ; 

2007-10-11 16:20:00 1761

原创 解析 Boost 库的文件名

Boost 库编译的 Lib 文件按下面的规则组合文件名:BOOST_LIB_PREFIX + BOOST_LIB_NAME + "_" + BOOST_LIB_TOOLSET + BOOST_LIB_THREAD_OPT + BOOST_LIB_RT_OPT + "-" + BOOST_LIB_VERSION这些定义为:BOOST_LIB_PREFIX:     静态库为 "lib"

2007-08-21 09:59:00 1568

原创 无锁的 ( lock-free ) 线程安全算法

友情提示:对 Lock-free 算法没概念的朋友,请先看下面的参考。算法描述Lock-free 算法的基础是 CAS (Compareand-Swap) 原子操作。当某个地址的原始值等于某个比较值时,把值改成新值,无论有否修改,返回这个地址的原始值。目前的cpu 支持最多64位的CAS。并且指针 p 必须对齐。 注:原子操作指一个cpu时钟周期内就可以完成的操作,不会被其他线程干扰。

2007-08-08 14:36:00 15563 3

原创 神秘的 Allocator

先看看 std::vector 的声明template class Type, class Allocator = allocatorType> >class vector 这个 allocator 一般我们很少用到,这个 allocatior 完成了分配内存的工作,对于小内存,它使用了线程池来优化效率。比较具体的介绍可以参考 http://www.stlchina.org/twik

2007-08-07 15:25:00 2073

原创 bjam 初接触

最近正在试用 bjam 来编译我的工程,网上到处找不到中文资料,手册又看的迷惑,连闷带猜的研究了半天,总算能编译我的工程了,写一点心得。如果你使用过 boost 库,也许会对bjam的强大功能有一些认识,bjam是专门为boost库设计的make工具,因此功能超强(其实我觉得过强了,毕竟强大的另一半就是复杂)。 它的一些基础知识可以参考 Jam 使用说明 、Bjam简明教程 ,如果打算拜读官方

2007-08-02 12:02:00 22509

转载 高质量C++/C编程指南

 摘录自:http://man.chinaunix.net/develop/c&c++/c/c.htm     高质量C++/C编程指南     文件状态 [ ] 草稿文件 [√] 正式文件

2007-07-17 09:01:00 1933

原创 PWLIB 中的运行期类创建器 PFactory

 PFactory 简介使用键名在运行期创建指定类型的类实例。PFactory 的定义template class _Abstract_T, typename _Key_T = PString>class PFactory 假设有一个基类 MyAbstractClass,它的派生类为 MySolidClassclass MySolidClass : public

2007-06-08 16:48:00 1059 1

原创 VC 2005 的IDE宏 - 创建 C++ 头文件的防重包含宏定义

为了防止 C++ 头文件 被重复包含,需要在头文件中加入防止防重包含的宏定义,这个IDE宏帮助完成这个工作。在头文件里插入如下代码的宏#ifndef __FILENAME_H_FEB57674_34B0_4043_BB8B_D4651FE588CB__#define __FILENAME_H_FEB57674_34B0_4043_BB8B_D4651FE588CB__#ifdef _MSC

2007-04-29 10:07:00 2375 1

原创 实现用类名来动态创建类

突发奇想写了这个非常简单,但是很有用的东西:需要 boost 库支持文件名:  Runtimeclass.hpp #include #include #include using std::string;

2006-08-16 23:42:00 2042 1

原创 3D 中的方位 (读书笔记)

   方位,就是方向+位置, 物体”方向“,指物体的朝向,比如说3D空间中的一个人脸,可以面向你,也可以面向天空。    直观的想象,每个物体都有6个自由度,代表位置的 x, y, z 坐标,以及绕 x, y, z 轴旋转的角度,很容易想到,可以用3个数来描述一个物体的方向。欧拉角正是一个用3 个数来描述方向的描述方式, 一般用 所谓 " heading-pitch-bank" 约定,在左手坐

2006-06-20 11:29:00 2068

原创 STL & Boost 相关中文信息收集(持续更新中)

STL & Boost 相关中文站点信息STL中文站 STLChina.orgSTLChina.org 的 Boost 中文站Boost 文档中文翻译组(google groups,上去也许需要想点办法),他们的 SVN: https://boost-doc-zh.googlecode.com/svn/trunkBoost 安装文档B

2006-03-06 10:24:00 4369 4

原创 析构函数的秘密

C++ 对虚拟析构函数的解释:By making the Base class Destructor virtual, both the destructors will be called in order. The order of execution of destructor in an inherited class during a clean up is like this. 1

2006-01-26 10:23:00 1335 2

转载 Yacc 与 Lex 快速入门

原文地址:http://www-128.ibm.com/developerworks/cn/linux/sdk/lex/Lex 与 Yacc 介绍Ashish Bansal软件工程师, Sapient 公司2000 年 11 月 Lex 代表 Lexical Analyzar。Yacc 代表 Yet Another Compiler Compiler。 让我们从 Lex 开始吧。LexLex 是一

2005-10-25 17:49:00 1181

转载 volatile 关键字说明

volatile的本意是“易变的” 由于访问寄存器的速度要快过RAM,所以编译器一般都会作减少存取外部RAM的优化。对于一个变量,如果编译器发现赋值后,没有变化,编译器就可能优化代码,直接从寄存器或取数据,而不是从内存获取。如果由于某种原因,变量被操作系统等编译器未知的原因更改,程序可能没有获得最新的值。volatile关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更

2005-10-24 17:44:00 1227

转载 使用可变(mutable)成员隐藏实现细节

作者: Danny Kalev 关键字 mutable 是一个奇怪的修饰符(specifier),它只能够用于一个类的非静态数据成员。下面我将讨论 mutable 的语义和用法,但是首先我要解释一下 C++ 对象模型的一个关键概念。对象的状态一个对象的状态由其非静态数据成员的值构成,因此,修改一个数据成员将会改变整个对象的状态。将一个成员函数声明为 const 能够保证它不会改变对象的状态

2005-10-24 17:28:00 1024

原创 Xml 中的名字空间

刚学 XML 的朋友经常会被名字空间搞糊涂,我来做一下简单的解释。xml 节点的一般写法是 如果名字空间前缀省略,就是使用默认名字空间。节点名相同,而属于不同名字空间的节点是不同的。世界上有无数的 xml 文档,也就有无数的节点、属性,它们的名字很可能是相同的。名字空间,就是是为了区别名字相同,而意义不同的节点、属性。比如文档 A 和 文档 B 中都有一个名叫 "car" 的节点,但是文档 A

2005-03-02 15:47:00 1630

原创 同时使用 xml, schema 和 xslt 的例子

以前从来没有用过 schema, 这次希望能给我的 xml 文件加上 namespace, schema, 然后用 xslt 转换成 html, 没想到花了不少功夫。现在我把工作正常的结果记录下来,希望对大家有些帮助。先来看看我的 xml 文件。打算用来定义网页的菜单。         很简单的 xml 文件,抛开弯路不提,用 xmlspy 的 Generate Schema 功能自动生成 sch

2005-03-02 15:04:00 2476

原创 在VB中使用文件对象

在VB中使用文件对象纲要     随着Visual Basic Scripting Edition2.0版本的发布,微软提供了一种全新的文件操作方法——文件系统对象(FileSystemObject)。用对象编程,这正是开发者们所希望用到。这个对象,包括一些其它的相关对象,封装了所有的文件操作。这篇文章将向你介绍这些对象,并且展示如何利用它们来编程。 正文  在VB中使用文件对象作 者 : 扬

2001-10-10 14:07:00 1442

原创 在VB和Web页面中使用Shell对象

在VB和Web页面中使用Shell对象 武汉测绘科技大学光电工程学院电子工程系 朱劼 ---- 什么是Shell对象?具体来讲,就是微软对一些常用外壳操作函数的封装。象打开或浏览一个文件夹、查找文件、关闭计算机等等,而且还能浏览整个文件系统,获取文件或文件夹的各种信息。由于这些封装是建立在OLE自动化服务的基础之上,所以我们就可以在VB和Web中方便的使用它们。 ---- 在VB中

2001-09-18 10:24:00 1504

原创 DirectShow 导航

  我们网站还有好多DirectX 8的翻译,就不一一贴了。Microsoft DirectX 8.0导航这个部分描述这个 Microsoft® DirectShow® 文档是如何组织的。如果你有以前使用 DirectShow 的经验,阅读“DirectShow 中的新内容”。它描述包含在Microsoft® DirectX® 8 中的新特性。 如果你刚开始

2001-07-19 12:55:00 1807 2

原创 DirectShow 导言 - DirectX SDK 中文化小组献上

DirectShow 导言Microsoft® DirectShow® 应用程序界面 (API) 是Microsoft® Windows® 平台的一种媒体流体系。DirectShow 提供高品质的媒体流捕捉和回放。它支持宽松的格式变化,包括高级流格式 (ASF), Motion Picture Experts Group (MPEG), Audio-Video Interleaved (AVI

2001-07-19 12:48:00 2364 2

原创 在VC++中访问和修改系统注册表

(广东 粟利民 孙强)   Windows95/98的注册表包含了Windows95/98的系统配置、PC机的硬件配置、Win32应用程序和用户的其他设置信息。注册表和INI文件不同,它是多层次的树状数据结构,具有六个分支(根键),每个分支又由许多的键和键值组成,而每个键则代表一个特定的配置项目。  在实际的编程工作中,我们遇到了如何在Visual C++中对Windows95/98注册表整个树状

2000-11-08 22:25:00 1252

原创 VB中获取逻辑磁盘的信息

我们在编程的时候有时会需要得到系统中逻辑磁盘的一些信息,如磁盘卷标、磁盘序列号、空间大小、剩余空间等,这些信息直接使用VB提供的函数显然是无法得到的。但是,借助于VB对WINDOWS API函数的支持,使用GetVolumeInformation和 GetDiskFreeSpace这两个API函数,我们就可以很容易的得到磁盘的相关信息。   先来谈谈这两个函数。GetVolumeInformati

2000-11-08 22:20:00 1532

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关注的人

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