- 博客(81)
- 收藏
- 关注
转载 eixt(0),ExitProcess,和TerminateProcess的区别和联系
首先来谈谈一个进程的执行流程。每个应用程序都有个主函数,在WINDOWS下,只支持两种类型的应用程序——CUI(控制台应用程序)和GUI(图形界面应用程序),相应的,其主函数类型不同。来看下这几个入口函数[cpp] view plaincopyint WINAPI WinMain(HINSTANCE hinstExe, HINSTANCE,PSTR pszCmdLine, int nCmdSh
2017-03-30 16:06:06 435
转载 ffmpeg ./configure参数说明
root@web ffmpeg]# ./configure --helpUsage: configure [options]Options: [defaults in brackets after descriptions]Standard options: 基本选项参数--help 显示此帮助信息|print this message--l
2017-03-29 19:25:33 410
转载 Ubuntu14.04上安装tftpd服务
备在自己的Ubuntu14.04上使用tftpd服务,然后在网上查怎么搞,方法很多蛋疼得一米,按照这些方式,配置一大堆,尤其是有人要求安装xinetd,然后还要配置这个xinetd.conf文件,事实证明根本没必要,如果你按照这个来,我运行半天总是time out。我来说下我的步骤sudo apt-get install tftpd-hpa, tftp-hpa然后sudo vim /et
2017-03-29 15:51:35 268
转载 Ubuntu 14.04下NFS安装配置
1、安装nfs-server# apt-get install nfs-kernel-server2、建立nfs专用文件夹# mkdir /data/disk13、配置nfs# vi /etc/exports/data/disk1/ *(async,insecure,no_root_squash,no_subtree_check,rw)/data/
2017-03-29 15:14:40 296
原创 vs2015添加动态库文件路径
添加动态库文件:1.把dll文件放在与exe文件同级目录下,就可以运行exe文件。2.通过window下环境变量里添加即可。注:在进行编译的时候,vs编译器没有调用到lib文件,而是只调用dll文件。当运行exe文件的时候,才会调用到dll文件。
2017-03-29 14:10:58 3607 1
转载 初学者必看:VC++、Win32 SDK、MFC的区别
这是一个初进行开发人员都可能遇到过的概念不清的问题,自己当年也同样有过误解,做技术我感觉一定要专,但是,不代表毫不关心相关的知识,至少概念层次上要知道,所以,这里还是再把这些内容纪录下来,好记性不如烂笔头: C/C++都是一种编程语言,程序员用它来创作(我喜欢用创作这个词,让写代码有一些艺术气息...)各种各样的程序,简单如计算闰年,复杂到一个系统地实现。当然,编写标准C程序的时候,我
2017-03-29 11:37:49 9984
转载 Effective C++读书笔记
记得前段时间又一次拿起《Effective C++》的时候,有种豁然开朗的感觉,所以翻出了我第一遍读时做的笔记。只做参考以及查阅之用。如有需要请参阅《Effective C++》书本。 by shenzi/2010.5.17一.让自己习惯C++ 条款01:视C++为一个语言联邦 为了更好的理解C++,我们将C++分解为四个主要次语言:C。说到底C++仍是以C为
2017-03-29 10:43:53 250
转载 UML类图几种关系的总结
在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency) 1. 泛化(Generalization) 【泛化关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的
2017-03-28 11:48:46 199
转载 设计模式之观察者模式(c++)
Observer 模式应该可以说是应用最多、影响最广的模式之一,因为 Observer 的一个实例 Model/View/Control( MVC) 结构在系统开发架构设计中有着很重要的地位和意义, MVC实现了业务逻辑和表示层的解耦。在 MFC 中, Doc/View(文档视图结构)提供了实现 MVC 的框架结构。在 Java 阵容中, Struts 则提供和 MFC 中 Doc/View
2017-03-28 11:35:57 389
转载 设计模式C++实现(1)——工厂模式
软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最近看设计模式的书,对于每个模式,用C++写了个小例子,加深一下理解。主要参考《大话设计模式》和《设计模式:可复用面向对象软件的基础》两本书。本文介绍工厂模式的实现。 工厂模式属于创建型
2017-03-28 10:48:58 244
转载 deque用法详解
deque函数:deque容器为一个给定类型的元素进行线性处理,像向量一样,它能够快速地随机访问任一个元素,并且能够高效地插入和删除容器的尾部元素。但它又与vector不同,deque支持高效插入和删除容器的头部元素,因此也叫做双端队列。deque类常用的函数如下。(1) 构造函数deque():创建一个空dequedeque(int nSize):创建一个deque,元素个
2017-03-28 09:54:41 552
转载 C++中List的用法
Lists将元素按顺序储存在链表中. 与 向量(vectors)相比, 它允许快速的插入和删除,但是随机访问却比较慢.assign() 给list赋值 back() 返回最后一个元素 begin() 返回指向第一个元素的迭代器 clear() 删除所有元素 empty() 如果list是空的则返回true end() 返回末尾的迭代器 erase() 删除一个元素
2017-03-28 09:49:26 300
转载 C++ vector用法
在c++中,vector是一个十分有用的容器,下面对这个容器做一下总结。1 基本操作(1)头文件#include.(2)创建vector对象,vector vec;(3)尾部插入数字:vec.push_back(a);(4)使用下标访问元素,cout(5)使用迭代器访问元素.vectorint>::iterator it;for(it=vec.begin();it
2017-03-28 09:44:52 268
转载 线程同步(互斥锁与信号量的作用与区别)
“信号量用在多线程多任务同步的,一个线程完成了某一个动作就通过信号量告诉别的线程,别的线程再进行某些动作(大家都在semtake的时候,就阻塞在 哪里)。而互斥锁是用在多线程多任务互斥的,一个线程占用了某一个资源,那么别的线程就无法访问,直到这个线程unlock,其他的线程才开始可以利用这 个资源。比如对全局变量的访问,有时要加锁,操作完了,在解锁。有的时候锁和信号量会同时使用的”也就是说,信
2017-03-27 11:07:34 297
转载 POSIX线程清理函数
[cpp] view plain copy #include #include #include // Sleep pthread_mutex_t mtx = PTHREAD_MUTEX_INITIALIZER; pthread_cond_t cond = PTHREAD_COND_INITIALIZER; struct Node { in
2017-03-27 10:50:02 303
转载 linux 读写锁应用实例
/*使用读写锁实现四个线程读写一段程序的实例,共创建了四个新的线程,其中两个线程用来读取数据,另外两个线程用来写入数据。在任意时刻,如果有一个线程在写数据,将阻塞所有其他线程的任何操作。*/#include #include #include #include #include static pthread_rwlock_t rwlock;//读写锁对象#def
2017-03-27 10:40:46 752
转载 VC++ WCHAR,CHAR,TCHAR的区别
C++的字符分成两种类型wchar_t和char。 其中 WCHAR==wchar_t,CHAR==char。 TCHAR是一种条件编译的类型,根据条件可以代表wchar_t或char。#ifdef UNICODE typedef wchar_t TCHAR; #else typed
2017-03-26 16:53:18 569
转载 linux与windows字符编码格式的自动调整
这几天频繁在windows和ubuntu下调试代码,字符编码格式不同老是造成很大的困扰,windows下的默认字符编码格式是GBK(gb2312)而在ubuntu下的是utf-8。前天光来回的保存编码格式就费了很大的劲,今天google了下找到了个临时还算是不错的方法。ubuntu下自带一个字符编码格式调整命令:iconv[cpp] view plain
2017-03-26 16:34:59 3315
转载 字符编码笔记:ASCII,Unicode和UTF-8
字符编码笔记:ASCII,Unicode和UTF-8作者: 阮一峰日期: 2007年10月28日今天中午,我突然想搞清楚Unicode和UTF-8之间的关系,于是就开始在网上查资料。结果,这个问题比我想象的复杂,从午饭后一直看到晚上9点,才算初步搞清楚。下面就是我的笔记,主要用来整理自己的思路。但是,我尽量试图写得通俗
2017-03-26 16:19:11 617
转载 _stdcall的作用
并不是所有的语言都支持_cdcel调用规则,但是都支持_sdtcall调用规则, 假如你用VC做了一个DLL,导出了某些函数,如果你想这个DLL被其他语言也能调用的话,VB.DEPHI.PB..你的把他的调用约定声明为__stdcallwindows api都是_stdcall调用规则, 函数调用约定确定一个程序如何实现一个函数调用及参数如何传递。在单一语言程序中,调用约定几乎
2017-03-26 11:27:19 2196
原创 makefile中特殊符号的调用例子
当前文件夹内有sub文件,3.cpp,4.cpp ,sub文件夹中有1.cpp,2.cpp文件。下面是makefile的内容:之后make一下,显示如下:SRC是获取路径下的所有.cpp文件,当然,包含了路径。DIR是获取了除去路径的.o文件。OBJ是获取.o文件。
2017-03-24 15:46:04 374
原创 llinux下编写qt的“helloworld”
这是自己写的一个测试代码。#include #include int main(int argc ,char**argv){ QApplication app(argc ,argv); QLabel label("helloworle"); label.show(); app.exec();
2017-03-24 14:40:10 704
转载 采用dlopen、dlsym、dlclose加载动态链接库【总结】
1、前言 为了使程序方便扩展,具备通用性,可以采用插件形式。采用异步事件驱动模型,保证主程序逻辑不变,将各个业务已动态链接库的形式加载进来,这就是所谓的插件。linux提供了加载和处理动态链接库的系统调用,非常方便。本文先从使用上进行总结,涉及到基本的操作方法,关于动态链接库的本质及如何加载进来,需要进一步学习,后续继续补充。如何将程序设计为插件形式,挖掘出主题和业务之间的关系,需要进一步去
2017-03-24 13:43:14 306
原创 C语言头文件定义全局变量问题
正确的作法是在c源文件中定义一个全局变量,在头文件中加入全局变量的声明,在外部文件调用的时候,包含其头文件,加入全局变量的声明(不加也是可以的,最好加上)。//1.c int a;//1.h extern int a;//test.c #include "1.h"extern int a;int
2017-03-24 10:23:30 6496
转载 LIVE555研究之二: RTSP、RTP/RTCP协议介绍
一、概述 RTSP(Real-Time Stream Protocol )是一种基于文本的应用层协议,在语法及一些消息参数等方面,RTSP协议与HTTP协议类似。 RTSP被用于建立的控制媒体流的传输,它为多媒体服务扮演“网络远程控制”的角色。RTSP本身并不用于传送媒体流数据。媒体数据的传送可通过RTP/RTCP等协议来完成。 基本的RTSP操作过程 首先,
2017-03-23 11:38:39 630
转载 LIVE555研究之五:RTPServer(二)
接上文,main函数的几行代码创建了RTSPServer类的子类DynamicRTSPServer对象。RTPServer类是服务器类的基类,DynamicRTSPServer代表具体的服务器子类。我们今天介绍的服务器程序就是基于该类实现的。 在创建DynamicRTSPServer时传入了值为554的端口号。这是因为RTSP默认端口号为554,与http默认使用80端口是一样的。
2017-03-23 11:36:46 692
转载 LIVE555源码研究之四:MediaServer (一)
从本篇文章开始我们将从简单服务器程序作为突破点,深入研究LIVE555源码。 从前面的文章我们知道,任何一个基于LIVE555库实现的程序都需要实现自己的环境类和调度类。这里,服务器程序就使用了BasicEnvironment库中实现的简单环境类和简单调度类。说它简单,是因为该环境类仅仅实现了将错误信息输出到控制台。而调度类仅仅通过select模型实现socket的读写。 下
2017-03-23 11:15:53 381
转载 Onvif开发之基础介绍篇
什么是Onvif协议,谁开启了Onvif时代? ONVIF:原意为 开放型网络视频接口论坛,即 Open Network Video Interface Forum ,是安讯士、博世、索尼等三家公司在2008年共同成立的一个国际性 开放型 网络视频产品 标准网络接
2017-03-23 09:46:48 1196
转载 Onvif协议客户端开发【1.概念篇】
这段时间在做毕设,做的东西是基于Onvif的视频流云存储。把碰到的一些问题记录下来。一.学习Onvif协议简单来说,可以把Onvif协议想像成Http协议,客户端发出请求,然后服务端在收到请求之后把所需信息返回给客户端。以浏览器为例子,html代码通过http协议来传送。其实Onvif的整个过程很类似的,当你想去学习onvif协议的时候,所有介绍onvif的文章里面都会提到,onvif是基
2017-03-23 09:25:34 1955
转载 Linux 线程分离状态
线程的分离与结合 在任何一个时间点上,线程是可结合的(joinable),或者是分离的(detached)。一个可结合的线程能够被其他线程收回其资源和杀死;在被其他线程回收之前,它的存储器资源(如栈)是不释放的。相反,一个分离的线程是不能被其他线程回收或杀死的,它的存储器资源在它终止时由系统自动释放。线程的分离状态决定一个线程以什么样的方式来终止自己。在上
2017-03-22 18:52:45 454
原创 线程的简单例子
写一些简单的例子,供以后的参考用。 void* func(void *arg) { #传入参数 int a = *(int *)arg; #主动结束线程 pthread_exit(0); } int main() { pthread_t pthre
2017-03-22 18:51:49 505
转载 live555 接收客户端连接及rtsp交互---网络连接处理及RTSP连接模块
1 套接字创建,绑定,监听 主函数main()启动以后,会调用 (DynamicRTSPServer::createNew—> RTSPServer::setUpOurSocket setupStreamSocket) 在setupStreamSocket中实现TCP中S端套接字的创建,绑定,监听,设置非阻塞模式操作,其监听端口是854. 在套接字相关操作执行完成以后会执行 new Dy
2017-03-22 13:48:58 1311
转载 LIVE555基础
来自:http://blog.csdn.net/ithzhang/article/details/38613359 LIVE555是为流媒体提供解决方案的跨平台C++开源项目。从今天起我们将正式开始深入LIVE555代码。 一、各库简要介绍 LIVE555下包含LiveMedia、UsageEnvironment、BasicUsageEnvironment、Grou
2017-03-22 12:53:02 363
转载 进程间、线程间通信方式小结
一、进程间的通信方式# 管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。# 有名管道 (namedpipe) : 有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。# 信号量(semophore ) : 信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机
2017-03-22 10:41:02 226
原创 关于进程间通讯的一些知识
demo后台运行的话,在执行的时候,添加一个&即可后台运行。 要杀死后台进程的话,pkill -9 + filename,就可以杀死进程。
2017-03-22 10:35:40 167
转载 一个不错的shell 脚本教程 入门级
建立一个脚本 Linux中有好多中不同的shell,但是通常我们使用bash (bourne again shell) 进行shell编程,因为bash是免费的并且很容易使用。所以在本文中笔者所提供的脚本都是使用bash(但是在大多数情况下,这些脚本同样可以在 bash的大姐,bourne shell中运行)。 如同其他语言一样,通过我们使用任意一种文字编辑器,比如nedit
2017-03-22 09:45:57 577
原创 hi3520d中一些小知识的总结
本人之前没有做过开发板的东西,记录一些比较基本的东西,为以后复习做准备。 连接开发板的数据线,对应开发板上的接口,有三种:TXD,RXD,GND。TXD与RXD分别为发送数据和接受数据,GND为公共端。之前自己遇到过一个问题,通过minicom 进 入开发板,无法进行写入。错误的原因就是:串口线接错了 。对应关系是:RXD->TXD,TXD->RXD,GND->GND。这样的连接才是正确的
2017-03-21 17:24:04 2991
转载 C++用new和不用new创建类对象区别
起初刚学C++时,很不习惯用new,后来看老外的程序,发现几乎都是使用new,想一想区别也不是太大,但是在大一点的项目设计中,有时候不使用new的确会带来很多问题。当然这都是跟new的用法有关的。new创建类对象,使用完后需使用delete删除,跟申请内存类似。所以,new有时候又不太适合,比如在频繁调用场合,使用局部new类对象就不是个好选择,使用全局类对象或一个经过初始化的全局类指针似乎更加高
2017-03-21 12:26:36 304
转载 c++函数中的默认参数
函数的默认参数值,即在定义参数的时候同时给它一个初始值。在调用函数的时候,我们可以省略含有默认值的参数。也就是说,如果用户指定了参数值,则使用用户指定的值,否则使用默认参数的值。void Func(int i = 1, float f = 2.0f, double d = 3.0){ cout ", " ", " endl ;}int main(void){ F
2017-03-21 11:15:18 284
原创 编译海思sdk包遇到的问题以及解决方法(hello_world.srec错误 examples/standalone错误)
按照说明进行编译:make OSDRV_CROSS=arm-hisiv100nptl-linux CHIP=hi3520d OSDRV_SIZE=mini all ,之后缺少权限,之后加上sudo,再次进行编译。出现如下错误: 之后自己花了好多时间,来进行修改,可就是通不过,网上的答案和自己的问题都不相符。没办法,只好使用自带的文件来进行开发板的烧写工作,这个问题只好先放一放
2017-03-20 16:10:58 1816
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人