C++/STL/Boost
文章平均质量分 90
roger_77
这个作者很懒,什么都没留下…
展开
-
onvif_discovery_client搜索多个网段内的onvif设备(IPC)
##简介 轻量级的onvif设备搜索C++客户端。##特点 1、简单,不依赖gsoap. 2、支持多网卡,多网段,多IP搜索.彻底解决只能单IP网段搜索设备的限制。 2、使用boost,asio跨平台,支持windows,linux. 3、高效线程池处理udp收包,不丢包,不遗漏设备. ##Project Introduction原创 2017-03-23 10:28:45 · 12820 阅读 · 0 评论 -
使用sprintf及sscanf函数进行CString与CTime之间的转换
一.将CString转为CTime的几种方法CString timestr = "2000年04月05日"; int a,b,c ; sscanf(timestr.GetBuffer(timestr.GetLength()),"%d年%d月%d日",&a,&b,&c); CTime time(a,b,c,0,0,0); ------原创 2006-11-28 00:50:00 · 9201 阅读 · 0 评论 -
计算机中的字符,字节和编码
字符,字节和编码[原创文章,转载请保留或注明出处:http://www.regexlab.com/zh/encoding.htm]级别:中级摘要:本文介绍了字符与编码的发展过程,相关概念的正确理解。举例说明了一些实际应用中,编码的实现方法。然后,本文讲述了通常对字符与编码的几种误解,由于这些误解而导致乱码产生的原因,以及消除乱码的办法。本文的内容涵盖了“中文问题”,“乱码问题”。转载 2006-06-23 14:00:00 · 3722 阅读 · 0 评论 -
VC++中的图像类型转换--使用开源CxImage类库
一。CxImage类库简介这只是翻译了CxImage开源项目主页上的部分简介及简单使用。CxImage类库是一个优秀的图像操作类库。它可以快捷地存取、显示、转换各种图像。有的读者可能说,有那么多优秀的图形库,如OpenIL,FreeImage,PaintLib等等,它们可谓是功能强大,齐全,没必要用其它的类库。但我要说,这些类库基本上没有免费的,使用这些类库,你要被这样那样的许可协议所束缚原创 2006-11-04 01:14:00 · 10759 阅读 · 3 评论 -
实用C++开源程序/代码挖掘之codeproject
1、Code to extract plain text from a PDF file:通过代码直接获取PDF中的文本内容(C++)2、CppSQLite - C++ Wrapper for SQLite:SQLite C++封装库3、CSpreadSheet - A Class to Read and Write to Excel and Text Delimited Spreadshe原创 2006-06-19 21:02:00 · 2649 阅读 · 0 评论 -
06年06月06日
看看这个日期的数字,多好的一天!路路大顺。:-)因为工作需要,今天寻找一个免费的bmp图片转换为jpg格式的程序库,还要能调节压缩参数,因为有的图片需要无损压缩,有点则可能高倍压缩。找到一个比较老的程序库:ijg老巢:http://www.ijg.org/网友对它的一些简介:http://wantfei.cnblogs.com/articles/14524.html还有别人对其的封原创 2006-06-06 13:22:00 · 1947 阅读 · 1 评论 -
使用STL中的泛型算法sort
根据结构体中的两个字段分别进行排序:vector中的元素为ItemData,struct ItemData{ int OnLine; //1表示在线用户,2表示不在线用户 int User_id; //用户ID string strName;};现在要对这个vector进行排序.排序后的结果为: 先是所有在线用户排列在前面,其再根据用户ID从小到大排列; 然后是所有不在线用户,原创 2006-10-14 23:47:00 · 2480 阅读 · 1 评论 -
函数对象 (Function Objects)
函数对象(Function Objects)C++必知必会 第18条款 有时候需要一些行为类似于函数指针的东西,但函数指针显得笨拙、危险而且过时(让我们承认这一点)。通常最佳方式是使用函数对象(function object)取代函数指针。 与智能指针(参见条款42"智能指针")一样,函数对象也是一个普通的类对象。智能指针类型重载->和*原创 2006-05-25 23:24:00 · 10857 阅读 · 2 评论 -
仅通过崩溃地址找出源代码的出错行
仅通过崩溃地址找出源代码的出错行 1.设置编译器,编译时生成MAP文件。 (1)C/C++: /Zd (2)Link: /map[:filename] /map:lines /map:export (DLL时使用) 2.使用MAP文件 (1)仔细浏览 Rva+Base转载 2006-05-25 17:26:00 · 2287 阅读 · 0 评论 -
使用STL中的泛型算法及函数对象
使用了vector容器,remove_if(), for_each()等算法,并使用到了函数对象。vector容器中存放的是多个字段的结构体,然后根据结构体的某个字段删除其在容器中的元素。// 主要是用于练习使用STL中的泛型算法#include "stdafx.h"#include #include #include #include #include using namespa原创 2006-10-10 13:38:00 · 2349 阅读 · 0 评论 -
函数指针(Function Pointers)
函数指针(Function Pointers) 我们可以像下面那样声明一个指向特定类型函数的指针:void (*fp)(int); //指向函数的指针注意,其中的括号是必不可少的,它表明fp是一个指向返回值为void的函数的指针,而不是返回值为void* 的函数。就像指向普通数据的一样,指向函数的指针也可以为空,否则它就应该指向一个具有适当类型的函数。例如:ex原创 2006-05-23 23:15:00 · 4457 阅读 · 1 评论 -
C++链接器工具错误:LNK2001, LNK2019
这是归属于链接器工具错误 这一类。无法解析的外部符号“symbol”代码引用了链接器无法在库和对象文件中找到的内容(如函数、变量或标签)。可能的原因 代码请求的内容不存在(例如,符号拼写错误或使用错误的大小写)。 代码请求的内容错误(使用的是混合版本的库,一些库来自产品的一个版本,而其他则来自另一个版本)。 该错误信息之后为致命错误 LNK1120转载 2006-09-21 10:56:00 · 46658 阅读 · 3 评论 -
如何编写易于移植的C++ 程序
如何编写易于移植的C++ 程序转自《程序员》2005年第5期■ 文/ 紫云英由于操作系统的差异,同一种操作系统本身版本的差异,目前C++标准库提供的功能仍然有限以及C++编译器产品不是完全兼容等问题,使得我们在移植大型应用程序的时候往往会出现很多难以解决的问题,如何合理的避免他们提高C++程序的移植性,本文作者从源代码的组织安排等方面提出了一些实用的建议。 当我们编写服务器转载 2006-04-29 22:42:00 · 3007 阅读 · 2 评论 -
新一代跨平台C++开发工具Code::Blocks简介
原创:xinlnix 日期:2006-03-22出处:http://blog.csdn.net/xinlnixCode::Blocks 是一个开放源码的全功能的跨平台C/C++集成开发环境,目前1.0版正在紧锣密鼓地开发过程中。我们正殷切期待Code::Blocks 1.0的正式发布,不过当前1.0 revision 2220已经处于绝大部分功能可用状态。相比于QT designer这类界面设计工转载 2006-04-29 13:01:00 · 9012 阅读 · 4 评论 -
浅析:setsockopt()改善socket网络程序的健壮性
1. 如果在已经处于 ESTABLISHED状态下的socket(一般由端口号和标志符区分)调用closesocket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket:BOOL bReuseaddr=TRUE;setsockopt(s,SOL_SOCKET ,SO_REUSEADDR,(const char*)&bReuseaddr,sizeof(BOOL));转载 2006-12-22 10:39:00 · 10801 阅读 · 1 评论 -
使用boost中的filesystem类库遍历某个目录所有的文件
#include #include 使用boost中的filesystem类库遍历某个目录所有的文件int GetAllFileOfPath(const string strPath){namespace fs = boost::filesystem; // 得到配置文件夹. if ( strPath.size() { return 0; } fs::path full_path( f原创 2006-08-28 18:15:00 · 8303 阅读 · 0 评论 -
Socket程序中的Error#10054错误
最近使用winSock做的一个网络项目中,使用TCP+Socket连接编写的一个多线程的网络程序,功能是客户端负责不断地向服务器端发送数据,服务端负责接收数据。客户端是一个DLL,服务端程序是一个随机启动的NT Service服务程序。程序在夜间无人操作的运行过程中,客户端经常不定时地出现错误号为:10054的错误,而服务器端并没有相应的提示。运行环境是win2000+sp4,这个问题出现得比原创 2006-12-22 11:07:00 · 32103 阅读 · 3 评论 -
免费虚拟现实运用开发平台VR Juggler
VR Juggler 是一个虚拟现实运用开发平台.它是由Iowa State 大学的虚拟现实应用开发中心研究的.它可以在简单的操作系统(如pc机)中运行复杂的多屏显示系统或者是高端工作站和超级服务器.VR Juggler很强的适应性可以在很多的vr系统中使用,包括desktop VR, HMD, CAVE™-like devices, and Powerwall™-like devices,Pow原创 2008-06-04 14:51:00 · 10166 阅读 · 0 评论 -
boost源码剖析之:多重回调机制signal(上)
boost库固然是技术的宝库,却更是思想的宝库。大多数程序员都知道如何应用command,observer等模式,却不知该如何写一个支持该模式的类。正如隔靴搔痒,无法深入。DDJ上曾有一篇文章用C++实现类似C#的event机制,不过是个雏形,比之boost.Signal却又差之甚远矣。 上篇:架构篇引入所谓“事件”机制,简而言之,就是用户将自己的一个或多个回调函数挂钩到某个“事件转载 2007-12-29 11:17:00 · 9450 阅读 · 0 评论 -
Win32应用程序中进程间通信方法分析与比较
Win32应用程序中进程间通信方法分析与比较 作者:李志刚 纪玉波 程小茁 崔朝辉,引用本文供学习使用 摘 要 随着人们对应用程序的要求越来越高,单进程应用在许多场合已不能满足人们的要求。编写多进程/多线程程序成为现代程序设计的一个重要特点,在多进程程序设计中,进程间的通信是不可避免的。Microsoft Win32 API提供了转载 2007-06-10 12:26:00 · 9333 阅读 · 2 评论 -
使用VC编辑器的一些小技巧
◎VC工具问题,编辑时成员变量和函数不显示提示?通常输入类的对象,按“.”会出现该类的提示,函数按“("也会有参数提示,如果没提示,对菜鸟来说就要傻眼了。怎么办呢?关闭工程,到工程目录下删除××.ncb文件,再重新打开就OK了:)举一反三:有时遇到添加删除类多次后造成混乱,CLASS WIZARD出问题时,也可以去删除掉××.clw(这个文件实际是INI格式,可以手工修改,我不是高手,不会直接手动原创 2007-06-10 11:34:00 · 8916 阅读 · 0 评论 -
for循环的语句执行顺序
在一个技术QQ群中,试着做了一道C的题,感觉是考察for循环的执行流程.原题: 在C语言中,下列代码的输出结果是 ( ) (选择一项)void main( ){ int i = 0, j = 10; for(i=0;ij;i++,j--) { if(j==10) { printf("%d,%d ",i,j);原创 2007-04-21 23:18:00 · 17967 阅读 · 6 评论 -
STL的迭代器--Iterator
STL中的迭代器类似指针,但不仅仅是指针。迭代器和指针很像,功能很像指针,但是实际上,迭代器是通过重载一元的”*”和”->”来从容器中间接地返回一个值。将这些值存储在容器中并不是一个好主意,因为每当一个新值添加到容器中或者有一个值从容器中删除,这些值就会失效。在某种程度上,迭代器可以看作是句柄(handle)。通常情况下迭代器(iterator)的类型可以有所变化,这样容器也会有几种原创 2007-04-09 17:14:00 · 9808 阅读 · 0 评论 -
TCP/IP Winsock编程要点
利用Winsock编程由同步和异步方式,同步方式逻辑清晰,编程专注于应用,在抢先式的多任务操作系统中(WinNt、Win2K)采用多线程方式效率基本达到异步方式的水平,应此以下为同步方式编程要点。 1、快速通信 Winsock的Nagle算法将降低小数据报的发送速度,而系统默认是使用Nagle算法,使用 int setsockopt( SOCKET s, int level, int op转载 2007-04-09 12:44:00 · 7534 阅读 · 0 评论 -
winSock网络编程-UDP协议的简单示例(P)
1.关于udp:udp相对于tcp而言,它是不可靠的协议,不是有话说,“任何存在的东西总有其优点所在”吗?udp虽然可靠性不够高,但传输效率却很高,速度也很快,所以用的也很多。2.通信前的注意工作:因为采用基于windows套接口的编程,通信前,要进行初始化Windows Sockets服务。⑴用WSAStartup()函数对windowsSocketsDLL进行初始化。⑵在调转载 2007-04-09 12:48:00 · 13270 阅读 · 0 评论 -
Linux的异步传输模式及ACE的Proactor模式
Reactor是工作在同步模式下,Proactor工作在异步模式下。高性能服务器一定是工作在异步模式下的。所以,ACE中有Proactor这个类组。ACE的特点是跨平台和屏蔽技术细节,Proactor应该是编写一份代码,同时可以在Linux和Windows及其它操作系统上运行。实际开发中,我们发现,Proactor编写的服务程序在Windows下工作非常正常,在内核为2.6.X的Linux上就转载 2007-04-07 00:52:00 · 7469 阅读 · 0 评论 -
ACE中的Proactor介绍和应用实例
把这两天做Proactor的一些经验和心得写一下,可能会给一些人帮助。 Proactor是异步模式的网络处理器,ACE中叫做“前摄器”。 先讲几个概念: 前摄器(Proactor)-异步的事件多路分离器、处理器,是核心处理类。启动后由3个线程组成(你不需要关心这三个线程,我只是让你知道一下有这回事存在)。 接受器(Acceptor)-用于服务端,监听在一个端口上,接受转载 2007-04-07 00:48:00 · 5386 阅读 · 1 评论 -
高性能I/O设计模式Reactor和Proactor
昨天购买了《程序员》杂志 2007.4期,第一时间去翻阅了一遍,其中有一篇《两种高性能I/O设计模式的比较》令人眼睛一亮,这是一篇译文,偶最近在一直想认真看看这方面的文章很久了。文章主要是讲到了系统I/O方式可分为阻塞,非阻塞同步和非阻塞异步三类,三种方式中,非阻塞异步模式的扩展性和性能最好。主要是讲了两种IO多路复用模式:Reactor和Proactor,并对它们进行了比较。文章还介绍了原创 2007-04-07 00:07:00 · 125181 阅读 · 3 评论 -
C/C++中判断某一文件或目录是否存在
function StorePage(){d=document;t=d.selection?(d.selection.type!=None?d.selection.createRange().text:):(d.getSelection?d.getSelection():);void(keyit=window.open(http://www.365key.com/storeit.原创 2007-03-23 11:13:00 · 257844 阅读 · 15 评论 -
socket网络编程的一些基础知识
目录: 1) 什么是套接字? 2) Internet 套接字的两种类型 3) 网络理论 4) 结构体 5) 本机转换 6) IP 地址和如何处理它们 7) socket()函数 8) bind()函数 9) connect()函数 10) listen()函数 11) accept()函数 12) send()和recv()函数 13) sendto()和recvfrom()函数 14) clos转载 2006-12-22 11:17:00 · 16619 阅读 · 3 评论 -
vc++6.0STL中std::string类导致程序崩溃的解决方案
引用MS网站上翻译的一篇文章: 《STL std::string 类导致崩溃和内存损坏多处理器计算机上》 http://support.microsoft.com/default.aspx?scid=kb%3Bzh-cn%3B813810 英文原文: http://support.microsoft.com/default.aspx?scid=kb;en-us;813810 ---------摘要翻译 2006-09-07 17:00:00 · 11717 阅读 · 1 评论 -
程序的函数调用约定解析
函数调用约定解析 http://www.allaboutprogram.com/index.php?option=content&task=view&id=29&Itemid=31HouSisong@263.net 2004.11.07整理文章来源于abp论坛中的一篇帖子:http://bbs.allaboutprogram.com/viewtopic.php?t=1245(原文转载 2006-09-05 23:31:00 · 1564 阅读 · 0 评论 -
在VC中编译、运行程序的小知识点(VC6中编译、运行程序选项)
在VC中编译、运行程序的小知识点1、Run-Time LibraryRun-Time Library是编译器提供的标准库,提供一些基本的库函数和系统调用。我们一般使用的Run-Time Library是C Run-Time Libraries。当然也有Standard C++ libraries。 C Run-Time Libraries实现ANSI C的标准库。VC安装目录的CRT目录有转载 2006-04-19 12:36:00 · 1612 阅读 · 0 评论 -
使用SQLite的命令行工具访问数据库文件
SQLite3的Shell(1) sqlite3.exe是SQLite访问数据库的一个工具,使用命令行的形式。Shell的命令分为两种,第一是Shell本身的命令,以点开头。第二是用来管理当前数据库的SQL命令,以分号结束。其中Shell本身的命令分以下几种:控制数据的显示模式;设置Shell读取和显示数据的方式;其他系统控制命令常用的显示模式控制命令:.header ON|OFF:设置是原创 2006-03-25 16:04:00 · 2996 阅读 · 0 评论 -
SQLite数据库的体系结构(翻译自sqlite.org)
document.title="SQLite数据库的体系结构 - "+document.title;$1 简介 本文档描述了SQLite库的体系结构,这些信息对那些想理解和修改SQLite的内部工作机制的人是有用的。 下图显示了SQLite的主要组成部件及其相互关系,下面的内容将描述每一个部件。(具体的图参见http://www.sqlite.org/arch2.gif)转载 2006-03-25 15:15:00 · 3138 阅读 · 0 评论 -
开放源码嵌入式数据库 SQLite 简介
开放源码嵌入式数据库 SQLite 简介 零配置数据库:照亮应用开发之路 Nils-Erik Frantzell, 计算机科学系, University of California, Santa Cruz 2005 年 8 月 22转载 2006-03-25 14:07:00 · 3303 阅读 · 0 评论 -
C++用OTL访问Oracle数据库的例子
在Windows平台,数据库的访问手段比较丰富,如ADO或者ODBC等,然而在UNIX/Linux平台上访问数据就不是那么容易了。 如果我们使用Java作为开发语言,那么JDBC可以提供数据访问的途径,但是如果用C/C++就没这么简单了,你必须使用最原始的C/C++调用接口来访问数据库。 目前大型的数据库,如Oracel或者DB2都提供了C/C++的调用接口,但是作为开发人原创 2006-03-22 00:47:00 · 7361 阅读 · 2 评论 -
VC6.0的一个编译错误:fatal error C1001: INTERNAL COMPILER ERROR。
最近在编译一个VC6.0工程(开发环境:win2000+VS6.0+Sp6),在加入预编译头后出现了下面的编译错误提示:c:/program files/microsoft visual studio/vc98/include/xlocnum(106) : fatal error C1001: INTERNAL COMPILER ERROR (compiler file msc1.原创 2006-03-20 13:48:00 · 22675 阅读 · 4 评论 -
[转]C++开源跨平台类库及在VC++.net中应用的配置
[转]C++开源跨平台类库 document.title="[转]C++开源跨平台类库及在VC++.net中应用的配置 - "+document.title-----------------------------------------------------------------------------------------概要:--------------------------转载 2006-02-17 11:48:00 · 3007 阅读 · 0 评论 -
在VC++.net平台下编译使用boost库的简捷方法
document.title="在VC++.net 2003平台下编译使用boost库的简捷方法 - "+document.title;在VC++.net平台下编译使用boost库的简捷方法 前不久,在VC6上编译使用了boost库,感觉配置挺麻烦的,其实,vs.net2003下编译boost不用那么麻烦的,并不需要自己亲自来设置编译条件,只要用VS.net的命令行运行环境即可.原创 2006-02-17 10:31:00 · 6796 阅读 · 3 评论