c++基础
文章平均质量分 77
xiaoxianerqq
这个作者很懒,什么都没留下…
展开
-
C++ 回调函数的实现
回调函数实现回调函数介绍回调函数实现函数指针实现回调函数bind实现回调函数回调函数介绍什么是回调函数?官方解释是回调函数就是一个被作为参数传递的函数。一句话解释言简意赅,但也有点晦涩难懂,听完后依旧不知道如何使用回调函数,以及应该在什么业务场景下使用回调函数。所谓回调,就是模块A要通过模块B的某个函数b()完成一定的功能,但是函数b()自己无法实现全部功能,需要反过头来调用模块A中的某个函数a()来完成,这个a()就是回调函数。举个业务逻辑的例子:某个业务需求实现方式是:对象A和对象B转载 2021-04-28 14:47:06 · 405 阅读 · 0 评论 -
linux 在多网卡下的设备的UDP 组播问题总结
参考博文:解决接收不到组播包的问题 - Justlinux2010的专栏 - 博客频道 - CSDN.NEThttp://blog.csdn.net/justlinux2010/article/details/111403831、问题描述实现在多网卡设备上发送组播消息,实现设备搜索,并接收通过组播返回的搜索信息。设备为多网卡nvr,有一个常规网卡和一个PPPOE口;在进行发送组播搜索ipc时,只可以在常规网卡上接收到反馈的组播信息,而在ppoe上没有2、问题原因及解决方法关键代码(组播so转载 2021-04-23 12:14:33 · 784 阅读 · 0 评论 -
C++多线程框架(一)--------- new一下就启动一个线程
原帖: http://blog.csdn.net/ygrx/article/details/8960377几年前写过一个C++的多线程框架,虽然写完了,但是人一懒做了一次说明以后就没影了,最近把代码整理了一下,准备发到github上,在这里,再把这个框架总结一下吧。多线程一直是编程中常见的问题,特别是在Linux的c++上,多线程的封装一直不是很好,当然,有很多转载 2015-05-13 10:47:19 · 523 阅读 · 0 评论 -
C++多线程框架(三)--------- 消息队列
原帖: http://blog.csdn.net/ygrx/article/details/8964804首先,本文提到的代码的github地址为:https://github.com/wyh267/Cplusplus_Thread_Lib之前,多线程一些基本的东西,包括线程创建,互斥锁,信号量,我们都已经封装,下面来看看消息队列转载 2015-05-13 10:48:54 · 622 阅读 · 0 评论 -
stdin, stdout, stderr 详解
原帖: http://www.cnblogs.com/puputu/archive/2010/06/02/1749769.htmlNAME stdin, stdout, stderr - 标准 I/O 流 SYNOPSIS 览 #include extern FILE *stdin; extern FILE *st转载 2015-05-05 12:11:44 · 612 阅读 · 0 评论 -
时间复杂度的计算
原帖:http://blog.sina.com.cn/s/blog_5b48e1200100bfno.html定义:如果一个问题的规模是n,解这一问题的某一算法所需要的时间为T(n),它是n的某一函数 T(n)称为这一算法的“时间复杂性”。当输入量n逐渐加大时,时间复杂性的极限情形称为算法的“渐近时间复杂性”。我们常用大O表示法表示时间复杂性,注意它是某一个算法转载 2015-03-28 16:17:40 · 366 阅读 · 0 评论 -
linux下C/C++,多线程pthread
原帖: http://www.cnblogs.com/xianghang123/archive/2011/08/11/2134927.htmllinux下C/C++,多线程pthread·线程创建 函数原型:int pthread_create(pthread_t *restrict tidp,const pthread_attr_t *restr转载 2015-03-27 10:07:02 · 617 阅读 · 0 评论 -
coredump设置方法
此资料源自同事,故不知转载地址,在此做记录用1. 内核转储(coredump)作用(1) 内核转储的最大好处是能够保存问题发生时的状态。(2) 只要有可执行文件和内核转储,就可以知道进程当时的状态。(3) 只要获取内核转储,那么即使没有复现环境,也能调试。2. 启用内核转储2.1 查看内核转储是否有效在终端中输入以下命令,转载 2015-03-26 16:02:33 · 708 阅读 · 0 评论 -
Log4cplus使用
此资料为从同事处得到,故不知转载网址。1.1 简介log4cplus是C++编写的开源日志系统,前身是java编写的log4j日志系统。log4cplus具有线程安全、灵活、以及多粒度控制的特点,通过将信息划分优先级使其可以面向程序调试、运行、测试、和维护等全生命周期; 你可以选择将信息输出到屏幕、文件、NT event log、甚至是远程服务器;通过指定策略对日志进行转载 2015-03-26 15:59:05 · 728 阅读 · 0 评论 -
Google C++ 编程规范
原帖 : http://codinn.com/projects/google-cpp-styleguide/view/index.html0. 扉页0.1 译者前言0.2 背景1. 头文件1.1. #define 保护1.2. 头文件依赖1.3. 内联函数1.4. -inl.h文件1.5. 函数参数的顺序1.6. #include 的路径及顺序译者 (YuleFox) 笔记2. 作用域2.转载 2015-03-26 15:51:25 · 997 阅读 · 0 评论 -
static_cast, dynamic_cast, reinterpret_cast, const_cast区别比较
原帖 :http://www.cnblogs.com/jerry19880126/archive/2012/08/14/2638192.html隐式转换(implicit conversion)short a=2000;int b;b=a;short是两字节,int是四字节,由short型转成int型是宽化转换(bit位数增多),编译器没有warni转载 2015-03-26 15:28:23 · 328 阅读 · 0 评论 -
sizeof()用法汇总
原帖 : http://www.cnblogs.com/chengxin1982/archive/2009/01/13/1374575.htmlsizeof()功能:计算数据空间的字节数1.与strlen()比较 strlen()计算字符数组的字符数,以"\0"为结束判断,不计算为'\0'的数组元素。 而sizeof计算数据(包括数组转载 2015-03-26 15:14:40 · 321 阅读 · 0 评论 -
C++多线程框架 (二)---------Mutex互斥和Sem信号量
原帖:http://blog.csdn.net/ygrx/article/details/8963784互斥和信号量是多线程编程的两个基础,其原理就不详细说了,大家去看看操作系统的书或者网上查查吧。对于互斥的实现,无论什么操作系统都离不开三个步骤1.初始化互斥锁2.锁操作3.解锁操作对于不同的系统只是实现的函数有一些不同而已,转载 2015-05-13 10:48:10 · 374 阅读 · 0 评论 -
GObject对象系统
原帖: http://www.ibm.com/developerworks/cn/linux/l-gobject/前言大多数现代的计算机语言都带有自己的类型和对象系统,并附带算法结构。正象GLib提供的基本类型和算法结构(如链表、哈希表等)一样,GObject的对象系统提供了一种灵活的、可扩展的、并容易映射(到其它语言)的面向对象的C语言框架。它的实质可以概括为:转载 2015-06-16 10:09:54 · 342 阅读 · 0 评论 -
__attribute__ ((packed))字节对齐
原帖: http://blog.csdn.net/turkeyzhou/article/details/85605451. __attribute__ ((packed)) 的作用就是告诉编译器取消结构在编译过程中的优化对齐,按照实际占用字节数进行对齐,是GCC特有的语法。这个功能是跟操作系统没关系,跟编译器有关,gcc编译器不是紧凑模式的,我在windows下,用vc的编译器也不是紧转载 2015-05-29 16:52:40 · 372 阅读 · 0 评论 -
url 转换成ip
原帖: http://blog.csdn.net/zsl461975543/article/details/8060153DWORD URLToIPAddr(char *url){ DWORD nIpAddr = 0; if(strlen(url) return 0; nIpAddr = inet_addr(url); if(INADDR_NONE ==转载 2015-06-18 09:59:09 · 1697 阅读 · 0 评论 -
判断URL是否合法
原帖: http://www.cppblog.com/smagle/archive/2010/01/08/105184.html首先声明四点:本代码是我在MFC中写的,用到了很多MFC种的类,如果要移植到其他开发环境,请自行修改。因为实际具体要求,所有很多地方可能与大家使用的不同,原理代码贴出来,修改就简单了^_^。本代码仅仅是一个弱检查,如果有大牛写出了C/C++的正则式转载 2015-06-18 10:20:21 · 2774 阅读 · 0 评论 -
关于WINSOCK.H与winsock2.h中的重定义解决办法分析
原帖: http://eggbucket.iteye.com/blog/1140232问题描述:在 VC 6.0中使用socket相关的函数时没有什么问题,可是到了.net下就有以下类似的错误, c:\program files\microsoft visual studio8\vc\platformsdk\include\winsock2.h(112转载 2015-06-19 15:08:55 · 423 阅读 · 0 评论 -
字节序(大小端)详解从高低地址和高低位开始理解
原帖: http://blog.163.com/shidiankun@126/blog/static/1606147712012116111834473/一、字节序定义字节序,顾名思义字节的顺序,再多说两句就是大于一个字节类型的数据在内存中的存放顺序(一个字节的数据当然就无需谈顺序的问题了)。其实大部分人在实际的开发中都很少会直接和字节序打交道。唯有在跨平台以及转载 2015-06-03 10:37:35 · 419 阅读 · 0 评论 -
socket编程头文件和常用函数
原帖: http://wenku.baidu.com/link?url=hbbWMK26nj8RjR1JMhT4-Zg5DPjLLjTKlpPoBVX0NYD540Y__d4h1vsKYoIYaSEuH4e5Mc5w7cbtcSgQgCrUjhdOjKeqaVRql6cW4oquU6Ksys/types.h:数据类型定义 sys/s转载 2015-05-26 16:07:49 · 328 阅读 · 0 评论 -
linux c学习笔记----UDP基础客户/服务编程(sendto,recvfrom)
原帖:http://lobert.iteye.com/blog/1769618sendto(经socket传送数据)相关函数send , sendmsg,recv , recvfrom , socket表头文件#include #include 定义函数int sendto ( int s , const void * m转载 2015-05-26 16:08:05 · 323 阅读 · 0 评论 -
error C2660: “Gdiplus::GdiplusBase::operator new”: 函数不接受 3 个参数(转)
转自 : http://dragoo747450.blog.163.com/blog/static/16360602012656340227/环境:xp sp3,vs2008代码://使用了gdi,ImageEx继承于ImageImageEx* m_image;m_image = new ImageEx( L"d:\\loading.gi转载 2015-07-26 15:52:31 · 1073 阅读 · 0 评论 -
fatal error LNK1169: 找到一个或多个多重定义的符号
转自 : http://blog.sina.com.cn/s/blog_4baaabbb010007hu.html发现最近跟编译出现怪问题特别结缘,上个星期被搞得不行啦!但是现在却发现自己却爱上了他,起码现在遇到总比以后遇到好吧!今天遇到的问题是fatal error LNK1169: 找到一个或多个多重定义的符号。起先我以为和我以前遇到的定义了多个头文件类似,于是就把转载 2015-07-26 15:31:38 · 491 阅读 · 0 评论 -
Building an MFC project for a non-Unicode character set is deprecated
转自 : http://blog.csdn.net/shuaihj/article/details/17071351使用VS2013编译旧版VC++程序时,提示Building an MFC project for a non-Unicode character set is deprecated,微软提供了解决方案。一、错误信息[c转载 2015-07-26 15:33:37 · 430 阅读 · 0 评论 -
ffmpeg freetype not found 编译问题
转自 : http://blog.csdn.net/kingdam578/article/details/40476309备忘:如果要使用ffmpeg filter的drawtext功能, 在编译时需要加上 --enable-libfreetype , 官网说明:http://ffmpeg.org/ffmpeg-filters.html#drawtext-1转载 2015-07-27 19:31:51 · 3015 阅读 · 0 评论 -
用VS2013编译FFMPEG232
转自 : http://blog.csdn.net/finewind/article/details/38854517如果只是拿来使用,网上有现成的SDK。但我是想深入研究FFMPEG代码,又不熟悉linux开发环境,因此需要编译一个在windos平台下能用VS单步调试的FFMPEG,网上现有资料大部分都是基于很老的版本,不断摸索,终于成功了。之所以选择VS2013,是转载 2015-07-27 19:26:07 · 399 阅读 · 0 评论 -
C++使用libcurl做HttpClient
转自: http://blog.csdn.net/huyiyang2010/article/details/7664201当使用C++做HTTP客户端时,目前通用的做法就是使用libcurl。其官方网站的地址是http://curl.haxx.se/,该网站主要提供了Curl和libcurl。Curl是命令行工具,用于完成FTP, FTPS, HTTP, HTTPS, GOPH转载 2015-07-14 09:49:06 · 530 阅读 · 0 评论 -
linux c libcurl的简单使用
转自: http://blog.chinaunix.net/uid-23095063-id-163160.htmlcurl是Linux下一个非常著名的下载库,通过这个库,可以很简单的实现文件的下载等操作。看一个简单的例子: #include curl/curl.h>#include stdio.h>#include string.h>转载 2015-07-14 16:07:51 · 1741 阅读 · 0 评论 -
libcurl中curl_easy_setopt()和curl_easy_perform()函数使用中文详解
转自: http://blog.sina.com.cn/s/blog_7e0127220100zfbf.htmllibcurl里主要用到的函数有curl_easy_init(),curl_easy_setopt()和curl_easy_perform().顾名思义,curl_easy_init()是用来初始化libcurl库的(不知道对不对,就这么理解吧),curl_easy_转载 2015-07-15 14:11:55 · 673 阅读 · 0 评论 -
ffmpeg和SDL的多媒体编程(一)制作屏幕录像
转自 : http://www.cnblogs.com/yiluohuanghun/archive/2012/08/01/2618703.html概要 电影文件有很多基本的组成部分。首先,文件本身被称为容器Container,容器的类型决定了信息被存放在文件中的位置。AVI和Quicktime就是容器的例子。接着,你有一组流,例如,你经常有的是一个音频流和一个视频转载 2015-08-07 16:32:29 · 429 阅读 · 0 评论 -
线程创建与终止(Linux_C++)
转自 :http://www.cnblogs.com/kzloser/archive/2013/07/01/3160807.html线程 ID线程 ID 只在它所属的进程环境有效,并用 pthread_t 数据类型来表示,实现的时候可以用一个结构来代表 pthread_t 数据类型,所以在可移植的操作系统实现不能把它当做为整数来处理。因此必须使用函数(pthread_e转载 2015-07-29 17:47:05 · 429 阅读 · 0 评论 -
C++实现位图排序实例
转自: http://www.jb51.net/article/53703.htm在《编程珠玑》一书里提到了一种算法导论里没有提到过的位图排序方法,这种排序方法是通过牺牲空间效率来追求时间效率(线性时间)以达到时间-空间折中与双赢的目的。本文以实例形式简单讲一下位图排序思想。一、问题描述 1.输入:一个至多包含1千万个非负整数的文件 2.转载 2015-07-16 16:12:40 · 650 阅读 · 0 评论 -
libpcap
转自 : http://www.cnblogs.com/coder2012/archive/2013/04/13/3012390.html1.Libpcap简介 Libpcap是Packet Capture Libray的英文缩写,即数据包捕获函数库。该库提供的C函数接口用于捕捉经过指定网络接口的数据包,该接口应该是被设为混杂模式。这个在原始套接子中有提到。转载 2015-08-11 15:06:11 · 282 阅读 · 0 评论 -
linux C++ 多线程编程
转自 : http://blog.chinaunix.net/uid-14880649-id-2954431.html1.Solaris .vs. Linux Posix 库 Solaris 库(lib 线程)Linux POSIX 库(libp 线程)操作sema_destroy()sem_destroy()销毁信转载 2015-07-17 15:53:42 · 398 阅读 · 0 评论 -
linux C++ 面向对象线程类封装
转自 : http://blog.csdn.net/maotoula/article/details/185019631.封装遇到的问题将pthread线程封装为抽象类,这样用户在使用线程时,只需要继承一下这个抽象类,并实现相应的接口就可以了。这样做的好处是用户可以将注意力集中在线程所要执行的逻辑上,而不需要关注创建线程、销毁线程等细节问题上。转载 2015-07-29 17:07:04 · 799 阅读 · 0 评论 -
Using WinPcap in your programs
转自 : http://www.winpcap.org/docs/docs_41b5/html/group__wpcapsamps.htmlCreating an application that uses wpcap.dllTo create an application that uses wpcap.dll with Microsoft Visual C++, fol转载 2015-08-11 18:55:52 · 600 阅读 · 0 评论 -
使用WinPcap抓包分析网络协议
转自: http://www.cnblogs.com/luxiaoxun/archive/2012/08/05/2623641.html创建一个使用wpcap.dll的应用程序用 Microsoft Visual C++ 创建一个使用 wpcap.dll 的应用程序,需要按一下步骤:在每一个使用了库的源程序中,将 pcap.h头文件包含(include)进来转载 2015-08-11 19:03:57 · 887 阅读 · 0 评论 -
WinpCap的详解(一)
转自 : http://www.cnblogs.com/yingfang18/archive/2010/11/27/1889596.html首先来百科一下Winpcap是一个什么东东。Winpcap(windows packet capture)是windows平台下一个免费,公共的网络访问系统。 它有如下几个功能: 1、捕获原始数据包,包括在共享网络上各主转载 2015-08-11 16:10:46 · 3071 阅读 · 0 评论 -
WinpCap的详解(三)
转自 : http://www.cnblogs.com/yingfang18/archive/2010/11/28/1890164.html接着WinpCap详解(二),这篇博客主要来讨论一下,堆文件的处理以及简单发送数据包。1、处理脱机堆文件 我们将学习如何处理捕获到文件中的数据包。 WinPcap提供了很多函数来将网络数据流保存到文件并读取它们 -- 本讲转载 2015-08-11 16:12:31 · 807 阅读 · 0 评论 -
jsoncpp在linux下的配置
转自 : http://www.cnblogs.com/kingcat/archive/2012/06/14/2549050.htmlJSON 官方的解释为:JSON 是一种轻量级的数据传输格式。关于 JSON 更具体的信息,可参见 JSON 官网:http://www.json.org。jsoncpp 是比较出名的 C++ JSON 解析库。在 JSON 官网也是转载 2015-07-19 09:46:37 · 555 阅读 · 0 评论