一个在IT行业摸爬滚打的老司机
本篇紧接着boost上篇叙述Boost::DateTime的时间处理。在C++中,常见的时间有time_t, FILETIME和tm,而boost中用ptime。 构造ptime 1.ptime的构造函数有四种: 1: using namespace boost::pos...
C++11支持range-based for循环。这是一个很方便的特性,能省挺多代码。以下代码就能很方便的遍历vector中的元素,并打印出来: 1 2 3 4 5 6 7 8 std::vector int_vec; int_vec.
一般我们在Linux下执行某些外部程序的时候可能会提示找不到共享库的错误, 比如: tmux: error while loading shared libraries: libevent-1.
引言: CentOS自带的yum源中rpm包数量有限,很多时候找不到我们需的软件包,(例如:要安装网络连接查看软件iftop,默认设置下无法使用yum命令安装),下面教大家在CentOS 6.2中(以32位系统为例,64位系统安装方法一样),使用第三方yum源来安装更多软件包。
linux下安装软件包有两种方法:源文件编译安装(source)和 rpm 安装。 1.源文件包安装的通用方法。 一般安装源代码的程序你得要看它的README,一般在它的目录下都有的。 01.配置: 构建应用的第一步就是执行configure脚本,该脚本位于程式源文件的主目录下: [root@localhost~]# ./configure 该脚本将扫描系统,以确保程式所需的所有库文件业已存在,并做好文件路径及其他所需的设置工作。
1.如果这个库文件已经存在 使用rpm命令: # rpm -qf /file/path (绝对路径) 例如: # rpm -qf /lib/libm.so.6 glibc-2.12-1.47.el6.i686 当然,这适用于rpm包已经安装了的情况。
author:lidabo 装了好多次系统,每次装的时候都有要在网上各种查,太麻烦了。所以决定记录一下,以后用到的时候会方便一些。当然,本文来源于网络,取百家之长,最重要的是本人已验证过,说明对本系统是可行的。
来到Linux世界中已有一段时间了,感觉上好像自己的电脑成了一个孤岛。周围的人都还是用Windows系统,能相互共享文件,我用Linux系统,别人的共享文件都还不知道怎么访问?通过网上查资料学习,现在知道了。
本文提供了在Windows下用Eclipse+CDT+MinGW搭建C / C++开发平台的方法, 测试平台为Windows XP Sp2 CHS。 以下软件均为Windows平台下的版本。 1、安装JDK,目的是为了Eclipse的运行。
MinGW是Minimalist GNU for Windows的缩写,是把linux下的GNU开发工具包移植到windows的项目之一。和Cygwin不一样的是,MinGW不提供linux的posix运行系统的模拟层,而是直接使用windows的运行库,因而开发的windows的程序可以说是原生的,这样就方便了项目的移植,程序的运行效率也要比Cygwin高,而Cygwin本身很多的DLL也是使用MinGW来编译的。
MinGW是什么? MinGW是建立在gcc和binutils项目上的,用来编译和连接代码,使之运行在windows系统上; 提供c、c++和fortran编译器和相关工具; MinGW=Minimalist GNU for Windows; MinGW使用微软的运行库,生成Windows下的代码; 因为不使用Gnu's General Public License,不需要发布程序的时候附加源代码。
查询一些RTMP的协议封装时找到了一些RTMP开源项目,在这里列举一下,以后有时间或是有兴趣可以参考一下: just very few of them. Red5 only contains a server-implementation (in java).
3.1:MinGW 是什么? MinGW 提供了一套简单方便的Windows下的基于GCC 程序开发环境。MinGW 收集了一系列免费的Windows 使用的头文件和库文件;同时整合了GNU ( http://www.gnu.org/ )的工具集,特别是GNU 程序开发工具,如经典gcc, g++, make等。
1、在.proto文件中定义消息格式 2、使用protobuf编译器 3、使用c++ api来读写消息 0、为何使用protobuf? 1、原始内存数据结构,可以以二进制方式sent/saved.这种方式需要相同的内存布局和字节序。
Q: 那个auto_ptr是什么东东啊?为什么没有auto_array?A: 哦,auto_ptr是一个很简单的资源封装类,是在头文件中定义的。它使用“资源分配即初始化”技术来保证资源在发生异常时也能被安全释放(“exception safety”)。
boost中提供了几种智能指针方法:scoped_ptr shared_ptr intrusive_ptr weak_ptr,而标准库中提供的智能指针为auto_ptr. 这其中,我最喜欢,使用最多的是shared_ptr,也最让人随心所欲. 使用很简单,如下: 头文件 class A { virtual void process(); } boost::shared_ptr test(new A); boost::shared_ptr通过重载->(返回传入的指针),test的使用就如同一个指针。
条款1:不要把一个原生指针给多个shared_ptr管理 int* ptr = new int; shared_ptr p1(ptr); shared_ptr p2(ptr); //logic error ptr对象被删除了2次 这种问题比喻成“二龙治水”,在原生指针中也同样可能发生。
本站文章除注明转载外,均为本站原创或者翻译。 本站文章欢迎各种形式的转载,但请18岁以上的转载者注明文章出处,尊重我的劳动,也尊重你的智商; 本站部分原创和翻译文章提供markdown格式源码,欢迎使用文章源码进行转载; 本文标题:修改Visual Studio Express 2012新建C++文件编码 本文链接:http://zengrong.
thread_group是boost库中的线程池类,内部使用的是boost::thread。 随着C++ 11标准的制定和各大编译器的新版本的推出(其实主要是VS2012的推出啦……),本着能用标准库就用标准库的指导原则,决定把项目中多线程相关的部分代码从boost::thread迁移到std::thread。
下面是一个生产者消费者问题,来介绍condition_variable的用法。当线程间的共享数据发生变化的时候,可以通过condition_variable来通知其他的线程。消费者wait 直到生产者通知其状态发生改变,Condition_variable是使用方法如下: ·当持有锁之后,线程调用wait ·wait解开持有的互斥锁(mutex),阻塞本线程,并将自己加入到唤醒队列中 ·当收到通知(notification),该线程从阻塞中恢复,并加入互斥锁队列(mutex queue) 线程被唤醒之后继续持有锁运行。
C++11开始支持多线程编程,之前多线程编程都需要系统的支持,在不同的系统下创建线程需要不同的API如pthread_create(),Createthread(),beginthread()等,使用起来都比较复杂,C++11提供了新头文件、、、等用于支持多线程。
C++11多线程教学II从我最近发布的C++11线程教学文章里,我们已经知道C++11线程写法与POSIX的pthreads写法相比,更为简洁。只需很少几个简单概念,我们就能搭建相当复杂的处理图片程序,但是我们回避了线程同步的议题。
本篇教学代码可在GitHub获得:https://github.com/sol-prog/threads。 在之前的教学中,我展示了一些最新进的C++11语言内容: 1. 正则表达式(http://solarianprogrammer.
问题背景 [cpp] view plaincopy #include using namespace std; vector doubleValues (const vector& v) { vector new_values( v.
声明:本文是在Alex Allain的文章http://www.cprogramming.com/c++11/c++11-auto-decltype-return-value-after-function.html的基础上写成的。
声明:本文参考了Alex Allain的文章http://www.cprogramming.com/c++11/c++11-lambda-closures.html 加入了自己的理解,不是简单的翻译 C++11终于知道要在语言中加入匿名函数了。
boost 循环缓冲区 [cpp] view plaincopy #include int _tmain(int argc, _TCHAR* argv[]) { boost::circular_buffer cb(3); // Insert some elements into the buffer.
boost::property_tree读取解析.xml文件 1)read_xml 支持中文路径 boost::property_tree::wptree wpt; std::locale::global(std::locale("")); boost::property_tree::xml_parser::read_xml("E:\\测试\\test.
boost::property_tree读取解析ini文件 [cpp] view plaincopy #include "stdafx.h" #include #include #include int main() { ...
ffmpeg的调用命令如下: ffmpeg -re -i xxx.mp4 -vcodec copy -acodec copy -f rtsp rtsp://127.0.0.1/live/mystream 用ffmpeg做输入测试 ffmpeg -re -i "E:\片源\复仇者联盟720p.
crtmpserver流媒体服务器的介绍与搭建 (2012-02-29 11:28) 标签: crtmpserver C++ RTMP Server rtmp Adobe FMS(Flash Med 流媒体服务器 分类: crtmpserver 前言 Adobe的FMS(Flash Media Server)是很好用。
1、实现多线程方法: 其实就是多个线程同时调用io_service::run for (int i = 0; i != m_nThreads; ++i) { boost::shared_ptr pTh(new boost::thread( ...
一、命令行解析 tprogram_options解析命令行参数示例代码: [cpp] view plaincopy #include using namespace std; #include namespace po = boos...
#include #include ...boost::property_tree::ptree pt;boost::property_tree::ini_parser::read_ini("config.ini", pt);std::cout
Boost.PropertyTree 应该是 Boost 1.41.0 开始正式加入 Boost 版本的。目前 ( 2010/02/28 ) 能下到的最新版本是 1.42.0。 主要作用/应用场合 Boost.PropertyTree 提供了一种结构化的数据存储容器。
Five Minute Tutorial This tutorial uses XML. Note that the library is not specifically bound to XML, and any other supported format (such as INI or JSON) could be used instead.
当使用xml_parser进行读xml时,如果遇到中文字符会出现解析错误。 网上有解决方案说使用wptree来实现,但当使用wptree来写xml时也会出错。而使用ptree来写中文时不会出错。 综合以上信息,尝试使用ptree来写xml,而用wptree来读。
property_tree是专为配置文件而写,支持xml,ini和json格式文件 ini比较简单,适合简单的配置,通常可能需要保存数组,这时xml是个不错的选择。 使用property_tree也很简单,boost自带的帮助中有个5分钟指南 http://www.boost.org/doc/libs/1_46_1/doc/html/boost_propertytree/tutorial.html 这里写一下使用xml来保存多维数组,在有些情况下一维数组并不能满足要求。
boost 官网 http://www.boost.org/ 下载页面 http://sourceforge.net/projects/boost/files/boost/1.53.0/ 我下载的是 boost_1_53_0.
引用计数是对共享的动态内存的一种管理方法,STL库的string就是用到了引用计数的方法。本文简单描述引用计数的原理,重点以一个实例来说明怎么在程序中实现引用计数。 1. 概念 引用计数用来记录当前有多少指针指向同一块动态分配的内存。
智能指针(auto_ptr) 这个名字听起来很酷是不是?其实auto_ptr 只是C++标准库提供的一个类模板,它与传统的new/delete控制内存相比有一定优势,但也有其局限。本文总结的8个问题足以涵盖auto_ptr的大部分内容。
参考来源:http://blog.csdn.net/flying8127/article/details/1598521 在原来原基础上,将代码整理,并加强安全性. 并按照WindowsAPI设计, 添加输出缓冲长度探测功能 当OutUTFString为NULL时, 可以进行输出的UTF8字符串...
windows开发环境下用VC++6.0 对unicode 、utf-8、 gb2312 三种编码格式之间的转换方法: [cpp] view plaincopy #include #include #include using namesp...
static std::wstring MBytesToWString(const char* lpcszString); static std::string WStringToMBytes(const wchar_t* lpwcszWString); static std::...
ATL宏: USES_CONVERSION; W2A A2W CString StringUtil::UTF8_to_UNICODE(const char *utf8_string, int length){ int wcsLen = ::MultiByteToWideChar(...
#include #include #include #include #include using namespace boost::uuids;using namespace std;int main(){ //------------------------- // 一些std函数的应用 //...
uuid: uuid库是一个小的使用工具,可以表示和生成UUID UUID是University Unique Identifier的缩写,它是一个128位的数字(16字节),不需要有一个中央认证机构就可以创建全国唯一的标示符。
Darwin Streaming Server 是一个开放源代码的streaming server,对于streaming server的编程和软件结构有着一定的参考价值,它是使用C++写的,其中的并发模式的核心就是Task类,下面写一下我的理解: 多任务的程序常常采用线程+同步阻塞IO的模式, 每个线程/进程服务于一个client,使用阻塞式的IO: 这种模式对于交互式的长连接应用也是常见的选择(比如Telnet)。
源码下载链接:http://dss.macosforge.org/源码版本: 5.5.5版本电脑环境:visual studio2010,window 7 x64系统。用VS2010打开WinNTSupport文件夹下的.dsw工程,全部转换vs2010。
原创。 一:编译Darwin6.0.3版本是最新版本,也提供了.dsw文件。但是使用vs2005和vc6是编译不过的。所以,采用Darwin5.5.5版本。使用vc6打开WinNTSupport文件夹下的.dsw工程,直接batch build,可一步生成。