- 博客(13)
- 资源 (7)
- 收藏
- 关注
原创 Imperfect C++ 编译期约束 must_have_base
《Imperfect C++》中的一个约束的例子,must_have_base,程序清单如下: template struct must_have_base { ~must_have_base() { void(*p)(D*,B*) = constraints;
2013-05-23 17:02:46
817
原创 ACE实践笔记(一)
最近使用ACE完成了一个视频转发服务器,这算是用ACE完成的第一个完整的程序,总结总结经验。这个程序主要功能就是接收客户指令,连接指定设备,获取视频流,然后再传输给客户。最初的想法是能够尽量多的负载视频路数,同时尽可能迅速的给客户响应。这里使用了异步的Proactor框架,这个Proactor线程里面,负责接收连接,以及收到命令后做验证后,加入Task队列。命令处理部分使用了Tas
2012-09-25 19:04:09
871
原创 一个API拦截的例子
闲来无事,做一个API拦截的简单程序,目标是拦截exploer.exe的CreateProcess.当打开桌面程序时,执行自定义的代码。首先需要确认的是,explorer.exe创建进程是用了什么函数,创建进程自然想到用CreateProcess(CreateProcessA,CreateProcessW).这里我拦截的是CreateProcessW。执行以下命令:dumpbin
2012-09-05 07:58:23
791
原创 ACE学习笔记(三)
一边看《C++网络编程卷2》的ACE_Task一边做点笔记。书上提到了个Active Object模式。ACE_Task启动了一组线程,它们共用一个线程函数,而在这个线程函数里,调用了ACE_Task::svc().代码很容易理解。网上找了个Active Object的定义:1、构造一个命令(实现Command模式的一个命令)ACE中就是一个ACE_Message_Block2、将该命
2012-08-15 15:58:46
1709
原创 资源:ace6.0和xmlrpc++0.7
ace6.0是ace新版。已经上传。 http://download.youkuaiyun.com/detail/dajjnan/4498655ACE书上给了2个下载地址,不过第一个貌似不能用了,可以去另一个下载:http://www.riverace.com/downloads.htmxmlrpc++是rpc的一种xml实现,用于异构平台,可以去sourceforge下
2012-08-14 13:24:47
625
原创 ACE学习笔记(二)
今天又把ACE的整编和解编看了看,看看ACE_OutputCDR和ACE_InputCDR都做了什么,我就想知道两点,一是它内部的数据时怎么保存的,二是它在什么地方用到了hton*和ntoh*函数。 我只看了write_2和read_2函数,这2个比较有代表性。首先它内部数据都保存在了ACE_Message_Block中,对ACE_OutputCDR::write_2,我没有定义ACE_E
2012-08-09 16:34:07
1633
原创 一个实现了iterator模式的简单模板类
最近的代码常常需要把将数据保存在容器里,譬如对应一个数据库表的内存类。为此写了一个简单的模板类,依靠容器实现了iterator模式。template class TObjects{public:typedef _container_type container_type; DECLARE_ITERATOR(typename container_type);NO_
2012-07-27 13:07:14
962
原创 两个自定义宏
空闲时写了一些基本代码,方便日后使用,这里列了两个。一个给类加了点信息,一个实现了一个简单的iterator模式。1、有时候会想知道一个class的类名和类型,通过这个宏可以获得。#define DECLARE_CLASS(_class_type) \public:: \typedef _class_type class_type;\static const TCHAR
2012-07-17 19:56:15
708
原创 IID_IBaseFilter的定义
昨天同事发现IID_IBaseFilter在directshow的Sdk中并没有赋值,而许多其他IID都可以找到DEFINE_GUID宏的定义(如在Include文件夹下的control.h),于是就花了点时间找了找。开始想到一种可能性是IID_IBaseFilter是由IBaseFilter通过宏生成,型如:#define GEN_IID(_F) IID_##_F于是又开始找IID_
2012-07-17 18:52:25
3626
原创 ACE学习笔记(一)
一、ACE_CDR::void mb_align (ACE_Message_Block *mb);{char * const start = ACE_ptr_align_binary (mb->base (), ACE_CDR::MAX_ALIGNMENT); mb->rd_ptr (star
2012-05-11 15:32:04
915
原创 windows下ffmpeg编译
今天花了一天时间在编译上,主要是编译出来的dll调用会抛异常(0xc0000005).首先下载新版ffmpeg,http://ffmpeg.mplayerhq.hu/,我下载的版本为0.8.11。编译的环境主要是msys + mingw。这里有个配置好的http://code.google.com/p/msys-cn/wiki/ChapterInstallation。不过其gcc编译出来的
2012-05-02 18:07:21
1261
原创 vc和bcb中的stl/boost版本
最初的想法是将vc和其他编译器写出来的东西可以二进制级别的复用,做成COM调用起来麻烦,而基本类型pod也不方便,就想统一一下不同编译器中的stl版本。拿vc9和bcb6来说,因为stl版本不同,容器的大小和实现都不一样,如果dll的头文件中有stl的东西,生成的dll便不能通用。因为bcb6中的stl是stlport,版本好像是4.5.于是找来了stlport从4.0到最新版的5.21,
2012-04-04 10:50:45
1543
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人