![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++基础
darkdragonking
这个作者很懒,什么都没留下…
展开
-
VS2010 制作安装包
项目的第一个版本出来了,要做个安装包,之前没有做过,网上看看贴,写了一个,总结下,根据本项目的需要,没有写的太复杂,可能还不是很完善,仅作参考。首先在打开 VS2010 》 文件 》新建项目创建一个安装项目 XXX 在“目标计算机上的文件系统”下我们看见 应用程序文件夹,用户程序菜单 ,用户桌面 , 在 应用程序文件夹 右击添加文件夹(即安转载 2014-11-26 13:56:12 · 908 阅读 · 0 评论 -
目前最好的,以rtmp发送264到red5服务器的代码,darkdragonking亲测可用--《到H264视频通过RTMP直播》
前面的文章中提到了通过RTSP(Real Time Streaming Protocol)的方式来实现视频的直播,但RTSP方式的一个弊端是如果需要支持客户端通过网页来访问,就需要在在页面中嵌入一个ActiveX控件,而ActiveX一般都需要签名才能正常使用,否则用户在使用时还需要更改浏览器设置,并且ActiveX还只支持IE内核的浏览器,Chrome、FireFox需要IE插件才能运行,因此会转载 2014-11-07 11:09:38 · 2995 阅读 · 0 评论 -
使用librtmp进行H264与AAC直播
libx264版本是128libfaac版本是1.281、帧的划分1.1 H.264帧对于H.264而言每帧的界定符为00 00 00 01或者00 00 01。比如下面的h264文件片断这就包函三帧数据00 00 00 01 67 42 C0 28 DA 01 E0 08 9F 96 10 0000 03 00 10 00 00 03 01 48转载 2014-11-07 09:37:39 · 896 阅读 · 0 评论 -
大端和小端的判别及转换
当前的存储器,多以byte为访问的最小单元,当一个逻辑上的地址必须分割为物理上的若干单元时就存在了先放谁后放谁的问题,于是端(endian)的问题应运而生了,对于不同的存储方法,就有大端(big-endian)和小端(little- endian)两个描述。字节排序按分为大端和小端,概念如下大端(big endian):低地址存放高有效字节小端(little endian):低字节存放转载 2014-11-06 19:59:16 · 746 阅读 · 0 评论 -
FLV文件格式分析
最近做RTMP Client,费力很大功夫终于把H264码流推送到Red5服务器上,封装包的时候用到FLV文件格式,下面是结合FLV Format Specification进行的分析。1. FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。转载 2014-11-06 17:13:39 · 665 阅读 · 0 评论 -
_beginthreadex参数说明
unsigned long _beginthreadex( void *security, unsigned stack_size, unsigned ( __stdcall *start_address )( void * ), void *arglist, unsigned initflag, unsigned *thrdaddr );//第1个参数:安全属性,原创 2014-11-24 16:06:36 · 7786 阅读 · 0 评论 -
C/C++程序从编译到最终生成可执行文件的过程分析
C/C++程序编译步骤 如何生成可执行文件 *******************************************************篇一******************************************************************************************** 电子计算机转载 2014-11-26 14:55:39 · 666 阅读 · 0 评论 -
字节、字、bit、byte的关系
字 word 字节 byte 位 bit 字长是指字的长度1字=2字节(1 word = 2 byte) 1字节=8位(1 byte = 8bit) 一个字的字长为16 一个字节的字长是8bps 是 bits per second 的简称。一般数据机及网络通讯的传输速率都是以「bps」为单位。如56Kbps、100.0Mbps 等等。 Bps即是Byte转载 2014-11-04 10:23:35 · 380 阅读 · 0 评论 -
C++ string 使用心得详解
C++ string 详解任何人对本文进行引用都要标明作者是Nicolai M.Josuttis///////////////////////////////////////////////////////////////////////////////////C++ 语言是个十分优秀的语言,但优秀并不表示完美。还是有许多人不愿意使用C或者C++,为什么?原因众多,其中之一转载 2014-11-04 10:01:46 · 482 阅读 · 0 评论 -
标准C++中的string类的用法总结
相信使用过MFC编程的朋友对CString这个类的印象应该非常深刻吧?的确,MFC中的CString类使用起来真的非常的方便好用。但是如果离开了MFC框架,还有没有这样使用起来非常方便的类呢?答案是肯定的。也许有人会说,即使不用MFC框架,也可以想办法使用MFC中的API,具体的操作方法在本文最后给出操作方法。其实,可能很多人很可能会忽略掉标准C++中string类的使用。标准C++中提供的str转载 2014-11-04 09:58:14 · 305 阅读 · 0 评论 -
H264视频编码成MP4文件
最近需要将H264视频编码成MP4格式。研究了一下,一种方法是采用ffmpeg库,可以先将H264文件解码,再编码生成MP4文件,但这种方式效率较低,10M的视频可能需要几秒钟才能完成。另一种方式根据MP4文件协议直接将H264包封装成MP4格式,由于是直接基于MP4的封装,因而效率很高。H264可以很方便的封装成FLV文件,但MP4格式格式相对比较复杂,封装起来会比较麻烦。由于没时间研究MP4协转载 2014-11-07 11:35:03 · 1433 阅读 · 1 评论 -
log4cpp(Log library for C++) 跟踪项目的日志
http://www.ibm.com/developerworks/cn/linux/l-log4cpp/index.html简介: log4cpp是个基于LGPL的开源项目,是基于优秀的日志处理跟踪项目Java语言的log4j移植过来的。log4j介绍的文档很多,在java领域使用的也比较广泛,而这个功能强大的库对国内的C++语言开发人员却使用的不多。这里从开发人员使用的角度介绍这个库,使开转载 2014-11-25 09:21:50 · 956 阅读 · 0 评论 -
白话经典算法系列之六 快速排序 快速搞定
原文地址:http://blog.csdn.net/morewindows/article/details/6684558 快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影。转载 2015-02-06 14:04:38 · 510 阅读 · 0 评论 -
CImage类的介绍与使用
程序代码下载处:http://download.csdn.net/source/2098910下载处:http://hi.baidu.com/wangleitongxing/blog/item/9063b03e5e20f3c97c1e71c8.html备注:这个程序是在xp系统,vs2008下做的,当初测试没出什么问题。昨天(2014-11-11)我下了程序在win7下面测试,出现了评转载 2014-12-31 10:12:27 · 584 阅读 · 0 评论 -
TRACE的用途及用法
用法如下:1.在MFC中加入TRACE语句2.在TOOLS->MFC TRACER中选择 “ENABLE TRACING”点击OK3.进行调试运行,GO(F5)(特别注意:不是执行‘!’以前之所以不能看到TRACE内容,是因为不是调试执行,而是‘!’了,切记,切记)4.然后就会在OUTPUT中的DEBUG窗口中看到TRACE内容了,调试执行会自动从BUILD窗口跳到DEBUG窗口,转载 2015-01-14 16:52:48 · 6447 阅读 · 0 评论 -
inline在C++中的作用
先说我darkdragonking的理解,inline就是内联函数,它是像预定义的宏类似,但功能更加准确,注意我说的是准确,而且可以使用到函数中的预定义的东西介绍内联函数之前,有必要介绍一下预处理宏。内联函数的功能和预处理宏的功能相似。相信大家都用过预处理宏,我们会经常定义一些宏,如#define TABLE_COMP(x) ((x)> 0?(x):0)转载 2014-12-09 11:01:42 · 848 阅读 · 0 评论 -
vs2010 log4cplus下载、编译、集成、报错及调试
最近打算搞一个c++的日志,网上有log4cpp、log4cplus、log4cxx,开始以为是同一个家伙,最后才知道原来是三家的东西,我擦。。。最后确定使用log4cplus,从网上也找了一些资料,但是开始总是不是我想要的东西,最后看到一个比较有建设性的博客,参考人家的次序一步步坐了下来,但是最后我依然有问题,各种找原因,最后终于能够写出日志了,所以把这个受折磨的过程记录下来,以备以后使用原创 2014-12-05 16:39:04 · 2599 阅读 · 2 评论 -
log4cplus使用
log4cplus is a simple to use C++ logging API providing thread-safe, flexible, and arbitrarily granular control over log management and configuration. It is modelled after the Java log4j API. 下载地址http:转载 2014-12-04 17:23:05 · 591 阅读 · 0 评论 -
CString与char *互转总结
1 前言今天在网上看论坛,发现大家对CString与Char *互转各说一词,其实我发现提问者所说的情况与回答问题的人完全不是同一情况,这里做一总结.首先大家得清楚一件事,一般在网上提出问题的人大部分使用的都是VC,那么你就应该知道,在VC下编程,工程属性中有一属性Charecter Set属性,其值可以设置为Use Multi-Byte Charecter Set转载 2014-12-03 13:30:38 · 1809 阅读 · 0 评论 -
图像缩放算法及速度优化之双线性插值
(1)计算源图像与目标图像宽与高的比例w0 : 表示源图像的宽度h0 : 表示源图像的高度w1 : 表示目标图像的宽度h1 : 表示目标图像的高度float fw = float(w0-1)/(w1-1);float fh = float(h0-1)/(h1-1);(2)针对目标图像的一个点(x, y),计算在源图像中的对应坐标,结果为浮点数。float x0 =翻译 2014-12-31 16:21:31 · 1530 阅读 · 0 评论 -
一个简单的 C++ Log文本输出类
// Log.h#ifndef LOG_H#define LOG_H#include #include #include #include using namespace std;/** * 用于输出log文件的类. */class Log{public: Log(); ~Log(); bool Open(string strFileNa转载 2014-11-25 09:24:15 · 1567 阅读 · 0 评论 -
防止程序启动两次的方法CreateMutex()
在工程文件中, WinMain函数里加上以下代码(此代码在BCB6.0下运行):HANDLE hMutex = CreateMutex(NULL, false, "Process"); if (GetLastError() == ERROR_ALREADY_EXISTS) { CloseHandle(hMutex);转载 2014-11-18 11:36:37 · 463 阅读 · 0 评论 -
很好很有爱的C++多线程例子
原文地址:http://www.cnblogs.com/zhuocheng/archive/2011/10/02/2198310.html转载 2014-11-18 09:25:58 · 879 阅读 · 0 评论 -
c++多线程,一个很清晰的包含类定义的多线程实例
/* file Main.cpp * * This program is an adaptation of the code Rex Jaeschke showed in * Listing 1 of his Oct 2005 C/C++ User's Journal article entitled * "C++/CLI Threading: Part I". I ch转载 2014-11-18 13:37:04 · 756 阅读 · 0 评论 -
C++多线程编程入门之经典实例
C++代码HANDLE CreateThread( __in SEC_ATTRS SecurityAttributes, __in ULONG StackSize, // initial stack size __in SEC_THREAD_START转载 2014-11-14 10:37:17 · 828 阅读 · 0 评论 -
秒杀多线程第二篇 多线程第一次亲密接触 CreateThread与_beginthreadex本质区别
本文将带领你与多线程作第一次亲密接触,并深入分析CreateThread与_beginthreadex的本质区别,相信阅读本文后你能轻松的使用多线程并能流畅准确的回答CreateThread与_beginthreadex到底有什么区别,在实际的编程中到底应该使用CreateThread还是_beginthreadex? 使用多线程其实是非常容易的,下面这个程序的主线程会创建了一个子线转载 2014-11-14 17:45:06 · 527 阅读 · 0 评论 -
C++内存泄露的检测(一)
一Visual Studio 调试器和 C 运行时 (CRT) 库为我们提供了检测和识别内存泄漏的有效方法。主要使用函数:_CrtDumpMemoryLeaks();二 实例#define _CRTDBG_MAP_ALLOC //输出更详细的report#include #include //以上的内容必须放在其他include的前面#include转载 2014-11-14 11:16:02 · 483 阅读 · 0 评论 -
C++高效编程忠告
这是对C++高效编程的一个总结, 很有指导作用.一、#include “filename.h”和#include 的区别#include “filename.h”是指编译器将从当前工作目录上开始查找此文件#include 是指编译器将从标准库目录中开始查找此文件二、头文件的作用加强安全检测通过头文件可能方便地调用库功能,而不必关心其实现方式三、* , &修饰转载 2014-11-14 11:14:46 · 745 阅读 · 0 评论 -
C++多线程(四)
多线程同步之WIN API互锁函数 (可以避免使用CriticalSection或Mutex)一 互锁函数 互锁函数的家族十分的庞大,可以查看msdn(http://msdn2.microsoft.com/en-us/library/ms686360.aspx)以InterLocked开始的函数都是户数函数。使用互锁函数的优点是:他的速度要比其他的CriticalSect转载 2014-11-14 11:22:28 · 524 阅读 · 0 评论 -
C++内存泄露的检测(四)
一 使用各种工具,一般都是收费的,但是可以申请试用。二 工具收集1)BoundsChecker :(http://www.compuware.com/)(首选BoundsChecker) 应该说是功能最强,使用只需要open需要测试的exe,然后start就可以了,可以通过检测结果定位到源代码中有内存泄露的代码行。2)Purifyplus (http://www.ib转载 2014-11-14 11:18:38 · 363 阅读 · 0 评论 -
C++的异常处理
一、什么是异常处理 一句话:异常处理就是处理程序中的错误。二、为什么需要异常处理,以及异常处理的基本思想 C++之父Bjarne Stroustrup在《The C++ Programming Language》中讲到:一个库的作者可以检测出发生了运行时错误,但一般不知道怎样去处理它们(因为和用户具体的应用有关);另一方面,库的用户知道怎样处理这些错转载 2014-11-10 17:00:06 · 352 阅读 · 0 评论 -
为何new出的对象数组必须要用delete[]删除,而普通数组delete和delete[]都一样-------_CrtMemBlockHeader
温馨提示:该文所有测试没有特殊说明都是在Debug模式下!用的是VS2010编译器!==================================================================================================================================== 1.在释放堆栈中c++基本数据转载 2014-11-11 17:35:41 · 522 阅读 · 0 评论 -
C++在单继承、多继承、虚继承时,构造函数、复制构造函数、赋值操作符、析构函数的执行顺序和执行内容
一、本文目的与说明 1. 本文目的:理清在各种继承时,构造函数、复制构造函数、赋值操作符、析构函数的执行顺序和执行内容。 2. 说明:虽然复制构造函数属于构造函数的一种,有共同的地方,但是也具有一定的特殊性,所以在总结它的性质时将它单独列出来了。 3. 单继承、多继承、虚继承,既然都属于继承,那么虽然有一定的区别,但还是相同点比较多。如果放在一块讲,但为了转载 2014-11-10 17:02:19 · 424 阅读 · 0 评论 -
C++多线程(五)
多线程之等待函数一 等待函数1)函数列举Wait functionDescriptionMsgWaitForMultipleObjectsWaits until one or all of the specified objects are in the signaled state or the time-out interval elap转载 2014-11-14 11:23:41 · 553 阅读 · 0 评论 -
C++内存泄露的检测(二)
使用MFC提供的功能来检测内存泄露。使用方法:1)工程是MFC工程,或是工程的设置中有Use MFC in a Shared DLL,2)很多地方说是要定义以下宏#ifdef _DEBUG#define new DEBUG_NEW#endif但是我发现只要include 即可。(大家可以检测一下)3)可以在F5运行程序后,在output窗口中看到如下的内存泄露的显转载 2014-11-14 11:16:57 · 437 阅读 · 0 评论 -
c++多线程,2个线程模拟卖火车票的小程序
如果遇到#include windows.h>#include iostream.h>DWORD WINAPI Fun1Proc(LPVOID lpParameter);//thread dataDWORD WINAPI Fun2Proc(LPVOID lpParameter);//thread dataint index=0;int tickets转载 2014-11-18 11:56:46 · 2738 阅读 · 0 评论 -
C++ memset详解
问题描述:int * cow = new int[n+1];memset(cow,0,(n+1)*4);将N+1个元素置成0,为什么不行memset是对一个字节的int4个字节,因此*4但是只能为0,其他例如1就不可以,详见最后一个例子memest原型 (please type "man memset" in your shell) voi转载 2014-11-15 15:13:31 · 552 阅读 · 0 评论 -
C++多线程(六)
多线程之线程同步Mutex (功能与CriticalSection相同,保证某一时刻只有一个线程能够访问共享资源,但是是内核对象,所以访问速度要比CriticalSection要慢,但是增加了等待超时的功能,使用时可以根据实际的情况选择其一)一 Mutex 互斥对象(mutex)内核对象能够确保线程拥有对单个资源的互斥访问权。实际上互斥对象是因此而得名的。互斥对象包含一个使用数量转载 2014-11-14 11:24:16 · 439 阅读 · 0 评论 -
C++多线程(二)
C/C++ Runtime 多线程函数一 简单实例(来自codeprojct:http://www.codeproject.com/useritems/MultithreadingTutorial.asp)主线程创建2个线程t1和t2,创建时2个线程就被挂起,后来调用ResumeThread恢复2个线程,是其开始执行,调用WaitForSingleObject等待2个线程执行完,然后推转载 2014-11-14 11:20:15 · 682 阅读 · 0 评论 -
C++多线程(八)
多线程同步之Event(主要用来线程间的等待通知) 一 Event 在所有的内核对象中,事件内核对象是个最基本的对象。它们包含一个使用计数(与所有内核对象一样),一个用于指明该事件是个自动重置的事件还是一个人工重置的事件的布尔值,另一个用于指明该事件处于已通知状态还是未通知状态的布尔值。 事件能够通知一个操作已经完成。有两种不同类型的事件对象。一种是人工重置的转载 2014-11-14 11:26:02 · 475 阅读 · 0 评论