
C/C++
文章平均质量分 69
LiuYinChina
多年 VC++ 经验,擅长模板、调试
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
分解命令行字符串
分解命令行字符串原创 2015-07-21 14:40:53 · 1003 阅读 · 0 评论 -
读取控制台输出
#include #include //////////////////////////////////////////////////////////////////////////template BOOL ShellCommand(LPSTR lpszCmdLine, CallbackT funCallback, DWORD dwContext){ STARTUPINFOA原创 2014-09-18 14:45:32 · 978 阅读 · 0 评论 -
免费电子书列表
在StackOverflow上,有人要打算收集个免费电子书的列表,结果很快就有人分享了一个列表。很不错,我就转过来了。原帖的地址在http://stackoverflow.com/questions/194812/list-of-freely-available-programming-books (注意:有些连接可能会被墙掉)List of Free Programming books (c转载 2014-06-21 14:39:29 · 932 阅读 · 0 评论 -
RTP/RTCP(实时传输协议/实时传输控制协议)自定义的相关C结构(参考)
wgscd转摘的RTP/RTCP(实时传输协议/实时传输控制协议)基于UDP派生出的协议,并增加了对实时传输的控制。一般用于网上传输实时视频数据,比如远程视频监控,视频点播等。有一本名叫《多媒体网络传输协议》的书上对此2个协议的结构和原理做了比较详细的介绍,好象是清华大学出版社出版的。 我去年做远程视频监控系统时,曾用基于2个协议,用Wonsock工具封装了一个网络传输动态连接库,专转载 2014-06-21 12:12:17 · 1788 阅读 · 0 评论 -
RTCP
RTCP RTCP协议将控制包周期发送给所有连接者,应用与数据包相同的分发机制。低层协议提供数据与控制包的复用,如使用单独的UDP端口号。RTCP执行下列四大功能: (1) 主要是提供数据发布的质量反馈。RTCP是作为RTP传输协议的一部分,与其他传输协议的流和阻塞控制有关。反馈对自适应编码控制直接起作用,但IP多播经验表明,从发送者收到反馈对诊断发送错误是至关重要的。给所有参转载 2014-06-21 12:08:49 · 920 阅读 · 0 评论 -
如何优雅地关闭一个socket
http://blog.youkuaiyun.com/afxid/article/details/698032 最近在windows编程时需要考虑到“如何优雅地关闭一个socket”,查阅了一些资料,现将查到的相关资料做个汇编,希望能对后来者有所帮助(比较懒,所以英文资料没有翻译:-))1. 关闭Socket时究竟做了什么 关闭socket分为主动关闭(Active closu转载 2014-06-09 10:25:44 · 4450 阅读 · 2 评论 -
binary_search
#ifndef BinarySearch_H#define BinarySearch_H//////////////////////////////////////////////////////////////////////////#include //////////////////////////////////////////////////////////////////原创 2014-06-08 16:57:36 · 628 阅读 · 0 评论 -
RTP发送H264
const uint8_t * FindNALHead(const uint8_t *lpStart, size_t nLength){ const uint8_t *lpBeg= lpStart + 0; const uint8_t *lpEnd= lpStart + nLength; uint32_t lValue = 0; for (; lpBeg != lpEnd; ++lpB原创 2014-04-09 11:38:08 · 3654 阅读 · 0 评论 -
JNIUtility
#ifndef JNIUtility_H#define JNIUtility_H//////////////////////////////////////////////////////////////////////////#ifdef __cplusplusextern "C" {#endif/////////////////////////////////////////原创 2014-06-08 17:45:24 · 931 阅读 · 0 评论 -
判断大小端
#include //////////////////////////////////////////////////////////////////////////int main(){ int value = 0x12345678; char *byte = (char *) &value; if (0x78 == *byte) { printf("little endia转载 2014-05-12 00:58:15 · 630 阅读 · 0 评论 -
CPUID
使用 CPUID 指令可以从 processor 厂商里获得关于 processor 的详细信息,CPUID 指令是从 Intel 486 处理器以后开始加入支持。1. 检测处理器是否支持 cpuid 指令现在的处理器都支持 cpuid 指令,确实没必要去检测是否支持,除非在古老的机器上运行才有必要。当然,这里只是作为一个知识点介绍,在 eflags.ID 标志位是 Processor转载 2014-04-18 16:49:36 · 1591 阅读 · 0 评论 -
调试技巧
<br />Visual C++ 的 C 运行时刻函数库标识模板<br />0xCD 已经分配的数据(alloCated Data)<br />0xDD 已经释放的数据(Deleted Data)<br />0xFD 被保护的数据(Fence Data)<br />Visual C++ 的 C 运行时刻函数库内存块类型标识符<br />_NORMAL_BLOCK 由程序直接分配的内存<br />_CLIENT_BLOCK 由程序直接分配的内存,可以通过内存调试函数对其拥有特殊控原创 2011-04-25 16:34:00 · 4595 阅读 · 0 评论 -
为什么RTP往往是使用UDP,而不是使用TCP封装
继续完成“流媒体技术系列”,接上一篇提出的问题:为什么RTP往往是使用UDP,而不是使用TCP封装,接下来简单的解释一下,先摘录一些基本概念,然后使用一个表格进行对比,进一步探讨这个问题。计算机网络OSI模型中,TCP和UDP为第四层传输层的功能。简单的说:TCP传输控制协议(Transmission Control Protocol)是基于连接的协议,也就是说,在正式收发数据前,必须和对转载 2014-08-24 22:05:34 · 1452 阅读 · 1 评论 -
UDP TCP 包头(Headers)和其效率(efficiency)分析
这篇文章将非常简单地讨论UDP TCP 包头(Headers)和它们的效率(efficiency)分析,尽可能的利用图表进行说明。使用以太网(Ethernet)的一个优点是它具有非常低的错误率。这对UDP很有利,这是因为UDP没有纳入纠错。让我们深入看看一个以太网帧,下图为Ethernet Header:在这个图中我们可以看到,以太网实现FCS(帧校验序列 Frame Check Se转载 2014-08-24 22:07:40 · 3280 阅读 · 0 评论 -
简单的线程类
发布点代码// --------------------------------------------------------------// // Copyright (C) 2009 - All Rights Reserved.// // Author: LiuYin// File: Thread// Version: 1.0// Date: 2009-8-10原创 2014-09-13 12:31:53 · 639 阅读 · 0 评论 -
保存 Bitmap
#include void BuildInfoHeader(LONG lWidth, LONG lHeight, BITMAPINFOHEADER &bitmapInfoHeader){ LONG lWidthStep = (((lWidth * 24) + 31) & (~31)) / 8; bitmapInfoHeader.biSize = sizeof(BITMAPINFOH原创 2015-07-28 22:34:13 · 1533 阅读 · 0 评论 -
学习网址
各类学习网址原创 2015-02-27 23:42:08 · 862 阅读 · 0 评论 -
排序向量
#include #include #include using std::list;using std::vector;using std::lower_bound;//////////////////////////////////////////////////////////////////////////template void print(const conai原创 2015-03-16 11:50:51 · 2137 阅读 · 0 评论 -
semaphore
#include "semaphore.h"#include "pthread.h"#include #include using namespace std;int count = 0;sem_t sem;void *readData(void *arg){ while(true) { sem_wait(&sem); printf("%d\n", count转载 2015-03-16 11:56:11 · 807 阅读 · 0 评论 -
WireShark 过滤语法
WireShark 过滤语法1. 过滤IP,如来源IP或者目标IP等于某个IP例子:ip.src eq 192.168.1.107 or ip.dst eq 192.168.1.107或者ip.addr eq 192.168.1.107 // 都能显示来源IP和目标IP2. 过滤端口例子:tcp.port eq 80 // 不管端口是来源的还是目标的都显转载 2015-01-07 09:55:07 · 925 阅读 · 0 评论 -
LINE_TO_STRING
#include //////////////////////////////////////////////////////////////////////////#define MACRO_TO_STRING(MACRO) #MACRO#define LINE_HELPER(LINE) MACRO_TO_STRING(LINE)#define LIN转载 2014-12-19 17:06:35 · 757 阅读 · 0 评论 -
C++库
http://www.trumphurst.com/cpplibs/cpplibs.php原创 2014-12-30 00:15:35 · 570 阅读 · 0 评论 -
C++编译期函数/变量检测技术,仿真VC关键字__if_exists
转帖请注明出处 http://www.cppblog.com/cexer/archive/2008/07/06/55484.html VC当中有一个鲜为人知的关键字,除了微软自己的代码,我从未在任何地方看到有人用过它。虽然它的功能很强大,不过除非设计上的问题或是一些无法排除的困难,否则几乎从不会需要用到它的功能。但是有时候,它确实能作为一个最简单的解决方案而让某些设计过程事半功倍。转载 2014-12-04 09:41:51 · 1354 阅读 · 0 评论 -
Substitution failure is not an error
Substitution failure is not an errorFrom Wikipedia, the free encyclopediaSubstitution failure is not an error (SFINAE) refers to a situation inC++ where an invalid substitution oftemplate转载 2014-12-03 14:15:36 · 1354 阅读 · 0 评论 -
The __if_exists Statement
The __if_exists Statement__if_exists allows you to conditionally include code depending on whether the specified symbol exists.__if_exists ( variable ) { statements }where:转载 2014-12-03 14:09:46 · 1011 阅读 · 0 评论 -
NetCat
NetCatbyJian Lee简介使用隐藏命令行参数正/反向域名解析参数详解案例监听端口(制作蜜罐)端口扫描ftp 服务器两台服务器文件校验使用注意简介使用最简单的使用: ”nc 主机名/IP端口号/服务名",只要甲主机打开了端口(任何对外服务的端口),乙主机就可以使用nc命令连接这个端口。比如nmap查看到172.16.70.140开转载 2014-10-13 19:43:42 · 764 阅读 · 0 评论 -
透过 Linux 内核看无锁编程
如多核多线程已经成为当下一个时髦的话题,而无锁编程更是这个时髦话题中的热点话题。Linux 内核可能是当今最大最复杂的并行程序之一,为我们分析多核多线程提供了绝佳的范例。内核设计者已经将最新的无锁编程技术带进了 2.6 系统内核中,本文以 2.6.10 版本为蓝本,带领您领略多核多线程编程的真谛,窥探无锁编程的奥秘 ,体味大师们的高雅设计!非阻塞型同步 (Non-blocking转载 2013-12-18 18:15:28 · 836 阅读 · 0 评论 -
C++ 字符串转化成浮点型
第一种:[cpp] view plaincopychar szString[] = "3.1415926535898"; double db1; db1 = atof(szString); printf("atof result:\n"); printf("%f %.12f %.2f %e %E\n", db1, db1, db1, db1,转载 2013-12-17 20:40:22 · 2076 阅读 · 0 评论 -
开源 YUVViewer
https://github.com/LiuYinChina/YUVViewer原创 2013-11-22 10:15:14 · 2778 阅读 · 1 评论 -
软件项目成功的秘诀
软件项目成功的秘诀 黄国强 2010-8-61 只做小项目;2 遇到了大项目,先切成小项目;3 每个任务要在一个月内看到结果;4 如果不能在一个月内看到结果,任务需要拆细;5 先做功能性的需求;6 功能性需求太多的话,挑最重要的;7 只做重要的事情转载 2011-10-14 10:53:10 · 518 阅读 · 0 评论 -
GPL- or GPL-compatible free software computer vision software(转)
GPL- or GPL-compatible free software computer vision software(转))2009-10-13 16:20:40| 分类: 工作知识 | 标签: |字号大中小 订阅 AccessGridhttp://www.access转载 2011-07-22 13:06:10 · 3868 阅读 · 0 评论 -
分派成员函数
<br />#include <map>using std::map;class CStateManager{ typedef bool (CStateManager::*QueryFunType)() const; struct QueryUnit { int nID; CStateManager::QueryFunType queryFun; };public: CStateManager(); bool QueryState(int原创 2011-05-27 14:53:00 · 788 阅读 · 0 评论 -
DirectDraw 示例
DirectDraw 在显示YUV图像的时候,由于 YUV 格式很多,显示不同格式的YUV图像都要针对不同格式专门写一些代码,这样很麻烦,同时也增加代码量。在网上看了一些 DirectDraw 示例以后,发现都是针对某一种格式的显示。我用最基本的 DirectDraw 显示方法,封装了几种格式的显示方法,我的显示器只支持示例中的 YUV 格式,所以只实现了几种格式,如有朋友还需要显示别的 YUV原创 2010-03-15 10:58:00 · 6406 阅读 · 11 评论 -
枚举系统中的串口
#ifndef EnumPortsEx_H#define EnumPortsEx_H ////////////////////////////////////////////////////////////////////////// #include #include #include //////////////////////////////////////////原创 2010-02-06 11:29:00 · 858 阅读 · 0 评论 -
多线程 Trace
利用线程局部存储保存栈深实现函数间的缩进,输出使用 OutputDebugString API 便于用 DebugView 查看,这样本机和远程(DebugView可远程)都可看到调用栈了。 #ifndef TraceEx_H#define TraceEx_H////////////////////////////////////////////////////////////原创 2009-06-16 11:05:00 · 1371 阅读 · 0 评论 -
判别对象是否动态创建
#ifndef DynamicCreate_H#define DynamicCreate_H ////////////////////////////////////////////////////////////////////////// class DynamicCreate{public: DynamicCreate(); void * operator new(siz原创 2009-06-16 11:01:00 · 713 阅读 · 0 评论 -
UDP 多播
#ifndef MulticastSocket_H#define MulticastSocket_H//////////////////////////////////////////////////////////////////////////#include /////////////////////////////////////////////////////////////原创 2009-03-04 09:38:00 · 3938 阅读 · 1 评论 -
UDP广播
发送#include #include ////////////////////////////////////////////////////////////////////////// struct AfxInitSocket{ AfxInitSocket() { WSADATA wsaData; WSAStartup(MAKEWORD(1, 1), &wsaDat原创 2009-02-26 16:00:00 · 1099 阅读 · 0 评论 -
通用点阵显示代码
前几天,工作上需要在 YUV 图像上显示中英文混显的点阵,在网上一阵搜索,结果很不理想。后来,自己花时间考虑了一下,其实就是个点阵匹配的问题,完全可以写成通用的代码(网上要么是16X16,要么是24X24,12X12还没找到,有的还分中文和英文)。以下便是个人完成的较为通用的点阵显示代码,也许叫点阵匹配更贴切一些,它完全和具体的绘图环境(GDI, DOS)无关, // pTxt,原创 2009-02-23 13:15:00 · 2389 阅读 · 0 评论 -
CTaskProtocol
// --------------------------------------------------------------// // Copyright (C) 2008 - All Rights Reserved.// // Author: LiuYin// File: TaskProtocol// Version: 1.0// Date: 2008-4-22// // Pur原创 2008-04-25 22:52:00 · 794 阅读 · 0 评论