程序设计
mtour
这个作者很懒,什么都没留下…
展开
-
第一个 Linux c 程序
在Linux 下 新建 Test.c func.h func.c 源文件,内容分别为: -----------func.h----------- #include void ShowHello(); ----------func.c----------- #include "func.h"void ShowHello(原创 2012-12-09 00:12:09 · 480 阅读 · 0 评论 -
基于DirectShow和FFmpeg的USB摄像头监控软件
第一个版本### 软件版本及实现功能0.0.1 1. USB摄像头枚举和设备信息获取2. 实时视频观看3. 24小时不间断录像,录像文件支持暴风影音播放### 软件说明:软件基于 DirectShow 和 FFMpeg开发### 软件使用说明:1. 第一次使用(以管理员权限运行)打开系统配置进行设备获取原创 2013-10-23 18:05:40 · 1649 阅读 · 0 评论 -
32位linux操作系统上编译 64位应用程序
sudo apt-get install gcc-multilibsudo apt-get install g++-multilib编译链接时 加参数 -m64原创 2014-05-06 14:15:57 · 968 阅读 · 0 评论 -
linux 线程池类封装
linux下封装的线程池类 和 任务基类 根据具体业务继承任务基类 线程池内使用条件变量来调度任务原创 2014-10-10 16:01:15 · 607 阅读 · 0 评论 -
基于STL的内存池类
基于STL封装的内存池类,已经在linux下做过稳定性测试。原创 2014-10-10 15:50:10 · 540 阅读 · 0 评论 -
ntp 服务编译安装 及 更改端口
开源库下载地址: http://download.csdn.net/detail/mtour/8151863原创 2014-11-13 09:10:03 · 11691 阅读 · 7 评论 -
c++ 虚函数表解析
在面试中jingc前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。转载 2014-11-04 15:37:32 · 324 阅读 · 0 评论 -
UDP 打洞示例 包含 服务器 客户端
客户端示例:#include "Net.h"#include "../p2pInfo.h"int main(){ CUdp udp; if (0!=udp.Open(16888)) { printf("client udp open failed \n"); return -1; } P2P_CLIENT_INFO clientInfo; mems原创 2014-11-04 15:28:11 · 973 阅读 · 1 评论 -
nginx http代理配置
示例:location /test{ proxy_pass http://zhidao.baidu.com/ ; }原创 2014-11-22 17:30:08 · 473 阅读 · 0 评论 -
libcurl 上传文件至 web服务器
下载地址: http://download.csdn.net/detail/mtour/8060775php 内容原创 2014-10-20 19:16:40 · 1681 阅读 · 0 评论 -
json c++ 解析库 jsoncpp 编译和使用
jsoncpp 源码下载地址 : https://github.com/open-source-parsers/jsoncpp原创 2014-10-21 17:39:29 · 1253 阅读 · 0 评论 -
libcurl 通过http协议下载文件并显示下载进度
vc6 测试工程下载地址: 代码如下:size_t my_write_func(void *ptr, size_t size, size_t nmemb, FILE *stream){ return fwrite(ptr, size, nmemb, stream);} int my_progress_func(char *progress_data,原创 2014-10-22 14:22:51 · 4827 阅读 · 0 评论 -
linux下编译libcurl
http://curl.haxx.se/download.html 地址下载最新版本源码解压源码包: tar -xzvf curl-7.38.0.tar.gz进入源码目录: cd curl-7.38.0/配置编译环境./configure --prefix=/usr/local/curl --disable-shared --enable-s原创 2014-10-22 14:40:04 · 480 阅读 · 0 评论 -
c++ 实现 http 上传和下载
代码下载地址: http://download.csdn.net/detail/mtour/8243527 最近写了个程序需要用到http通讯,由于flash空间比较小,没有考虑 libcurl库,用c++封装了一个http类,实现了http 文件上传和下载 #include #include #include #include原创 2014-12-10 13:46:17 · 7713 阅读 · 1 评论 -
c语言实现cgi程序
在tplink上刷了openwrt固件, 在上面编写了cgi测试程序 示例如下:#include #include "socket/Net.h"// test user name and passwordint Login(char* sJrmAddr,int nJrmPort,char* sUserNmae,char* sUserPwd);int main原创 2014-12-10 14:00:55 · 968 阅读 · 0 评论 -
基于FFMpeg的H264解码库
最近基于ffmpeg做了个h264视频流解码库,支持多路同时解码,主要提供的对外接口如下 : #ifdef _H264DECODER_EXPORTS#define H264DECODER_API __declspec(dllexport)#else#define H264DECODER_API __declspec(dllimport)#endif#define原创 2013-09-20 21:40:00 · 1204 阅读 · 0 评论 -
设计模式之装饰者模式 及 c++实现
动机: 为某个经常变化的对象动态的添加职责,通过组合的方式而不是继承的方式。因为通过继承的方式会增加类的继承层次,增加了软件的复杂度。 装饰者模式类图如下所示。 该模式的巧妙之处在于, Decorator类与要修饰的类的基类是继承和组合的关系。对于Component类的所有派生类都可以用一个Decorator类进行修饰。 c++ 实现代码如下: cl原创 2012-12-15 12:00:21 · 484 阅读 · 0 评论 -
Linux 第一个静态库
Linux下 静态库 一般为.a为扩展名 类似 lib***.a 的文件名。利用静态函数库编译成的文件比较大,因为整个 函数库的所有数据都会被整合进目标代码中,他的优点就显而易见了,即编译后的执行程序不需要外部的函数库支持,因为所有使用的函数都已经被编译进去了。当然这也会成为他的缺点,因为如果静态函数库改变了,那么你的程序必须重新编译。 -----------func.h--原创 2012-12-09 00:13:31 · 426 阅读 · 0 评论 -
设计模式之命令模式 及 c++ 实现
命令模式(Command)模式,将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的操作。使用场景: 1、当一个应用程序调用者与多个目标对象之间存在调用关系时,并且目标对象之间的操作很类似的时候。 2、例如当一个目标对象内部的方法调用太复杂,或者内部的方法需要协作才能完成对象的某个特点操作时。原创 2012-12-09 00:17:57 · 530 阅读 · 0 评论 -
Linux第一个动态库
动态库一般以.so结尾,就是shared object的意思. 其基本生成步骤为 ⑴编写函数代码 ⑵编译生成动态库文件,要加上 -shared 和 -fpic 选项 , 库文件名以lib开头, 以.so 结尾。 -fpic 使输出的对象模块是按照可重定位地址方式生成的。-shared指定把对应的源文件生成对应的动态链接库文件libstr.so文件。使用方原创 2012-12-09 00:16:10 · 436 阅读 · 0 评论 -
设计模式之桥接模式 及 c++ 实现
桥接模式的特点: 桥接模式的主要目的是将一个对象的变化因素抽象出来,不是通过类继承的方式来满足这个因素的变化,而是通过对象组合的方式来依赖因素的抽象,这样当依赖的因素的具体实现发生变化后,而我们的具体的引用却不用发生改变,因为我们的对象是依赖于抽象的,而不是具体的实现。 而且,通过这样的依赖抽象,我们在多个对象共享这样的因素的时候,就成为可能,如果我们使用的是具体的因素的共享,当我们改变这个变原创 2012-12-09 13:13:32 · 482 阅读 · 0 评论 -
设计模式之观察者模式 及 c++ 实现
观察者模式是最常用的设计模式之一,在此模式中,一个目标对象管理依赖它的观察对象,并在自身状态发生改变的时候主动通知所有注册的观察者对象。观察者模式常被用作设计事件处理系统。 例如下面的示例代码是常见的观察者模式的示例,在此用c++进行实现。猫作为目标物件 管理两个观察者,一个是主人,一个是老鼠。当猫叫这个事件发生时能够调用观察者相应的响应函数,从而做出相应的反应。 通过观察者原创 2012-12-07 22:30:35 · 390 阅读 · 0 评论 -
Linux入门基础知识
1. Linux操作系统是Unix操作系统的克隆版本2. Linux操作系统特点 自由软件: 开源自由软件 多用户多任务: 各用户之间各程序之间独立 用户界面良好: 基于命令行的Shell 界面 和 图形用户界面 支持多种文件系统: EXT2 EXT MSDOS NFS ..... 丰富的内置网络功原创 2012-12-09 00:09:57 · 513 阅读 · 0 评论 -
设计模式之创建者模式 c++ 实现
创建者设计模式属于 创建型设计模式的一种。创建者设计模式主要用于复杂对象的创建,这些对象的创建步骤和组合方式基本固定,但是可能具体的对象的组成部分却又可以自由的变化。创建者设计模式通过封装来隔离组成复杂对象的各个组成部分的变化。从而可以应对各种各样的需求。 创建者模式的类图如下:举例来说:KFC的套餐 为 Product 角色 顾客为Cli原创 2012-12-09 00:24:00 · 632 阅读 · 0 评论 -
设计模式之 工厂模式 及 c++ 实现
抽象工厂是为创建一组相关或依赖的对象提供接口,使得一组对象的维护,只需要维护相应的创建对象的工厂类。可以大大提高程序的可维护性。 在如下情况下,应当考虑使用抽象工厂模式: 一个系统不应当依赖于产品类实例如何被创建、组合和表达的细节,这对于所有形态的工厂模式都是重要的。这个系统有多于一个的产品族,而系统只消费其中某一产品族。同属于同一个产品族的产品是在一起使用的,这一原创 2012-12-07 22:26:12 · 457 阅读 · 0 评论 -
mfc 实现的线程池
在MFC下实现的简单线程池。主要用来处理比较频繁的但又耗时比较短的任务。通过预先创建好的线程能够最快的处理任务,而不会将大量的时间用在创建线程和销毁线程。具体使用方法为创建线程池对象,派生一个任务子类,具体只需要关心任务类的run函数和任务数据下载MFC线程池源码:ThreadPoolTest.rar具体实现代码如下://-------------header fi原创 2012-12-09 13:32:01 · 6967 阅读 · 1 评论 -
gdb 调试入门
GDB是GNU开源组织发布的一个强大的UNIX下的命令行程序调试工具。UNIX下的软件全是命令行的,这给程序开发提代供了极大的便利,命令行软件的优势在于,它们可以非常容易的集成在一起,使用几个简单的已有工具的命令,就可以做出一个非常强大的功能。gdb 常用调试命令backtrace(或bt)查看各级函数调用及参数finish 连续运行到当前函原创 2012-12-09 21:38:47 · 495 阅读 · 0 评论 -
c# 获取Access 表名称和字段
最近自己做一个 小型的管理系统,在建立实体类的时候发现有很多重复的工作需要做。于是考虑是否可以写个小的代码生成器。 拿 access 数据库做测试。其中下面是用于获取 表名称 和 表的字段的代码。 /// /// 数据库管理接口。 如 获取表的架构等 /// public interface IData原创 2012-12-10 23:00:56 · 1437 阅读 · 0 评论 -
设计模式之原型模式及c++实现
原型设计模式属于创建型模式。创建方式为通过一个已经存在的对象复制出完全一样的对象。适用场合为: 1. 构造函数复杂、耗时的对象。2. 对象的当前状态不确定、包含的数据不断变化 举例: 假设我们有这样的需求,我们在ORM框架的设计中,经常会遇到这样的问题,我们在处理某个对象的编辑状态的时候,我们想框架给我们生成的更新数据库的SQL语句,不包含原创 2012-12-15 11:54:47 · 367 阅读 · 0 评论 -
Linux进程基础知识
程序: 存储在磁盘上的可执行指令和数据的静态实体。进程: 具有一定功能的程序关于一个数据集合的一次运行活动。 Linux中每创建一个进程,系统将从内存中创建一个task_struct 放入到 task 数组。进程有两种运行模式: 用户模式 ,系统模式进程不能被抢占。Linux采用了预加载调度策略,每个进程只允许运行很短的时间(200ms), 这段时间称之为时原创 2012-12-15 15:55:53 · 455 阅读 · 0 评论 -
Linux makefile教程
最近开始看之前买的 Linux c 编程(买了大半年了) ,想要系统的学习下 Linux 相关的知识。 makefile 在许多平台的编程环境中都有用到, 个人感觉,在linux下 学习编程比在windows下更容易掌握编程的思想,比如编译等过程的理解。在windows下什么都是可视化的,反而让我们蒙蔽了双眼。 分享一篇写的不错的makefile的文章。 站在牛人的肩上会看的更转载 2012-12-15 11:57:43 · 375 阅读 · 0 评论 -
c++ 配置文件操作类
配置文件类似下面的格式param1=value1param2=value2....简单封装了c++类,可以读取任一参数接口定义/* author cwliu date: 2015-01-05*/#ifndef CONFIGFILE_H#define CONFIGFILE_H#include #原创 2015-01-05 15:20:07 · 884 阅读 · 0 评论