自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(72)
  • 资源 (2)
  • 收藏
  • 关注

原创 WebRTC@第三章@编译Android版@V1.0.0

驾驭开源库WebRTC第三章-编译Android版作者:adam鸣谢:老张、aaalaniz日期:2015-4-6版本:1.0.0欢迎转载,有问题反馈Q:2780113541,尽量完善系列教程。depot_tools代理设置参考老张《史上最牛逼的墙内下载webrtc代码说明_20150401》编译定制参考aaalaniz的脚本

2015-04-07 11:49:22 3628

原创 WebRTC@第四章@编译Mac&IOS版@V1.0.0

驾驭开源库WebRTC第四章-编译Mac&iOS版作者:adam鸣谢:老张日期:2015-4-6版本:1.0.0欢迎转载,有问题反馈Q:2780113541,尽量完善系列教程。depot_tools代理设置参考老张《史上最牛逼的墙内下载webrtc代码说明_20150401》 0、官方源码svn自2015-3-24已迁

2015-04-07 11:49:22 4881

原创 WebRTC@第二章@编译Windows版@V1.0.0

驾驭开源库WebRTC第二章-编译Windows版本作者:adam鸣谢:老张日期:2015-4-6版本:1.0.0欢迎转载,有问题反馈Q:2780113541,尽量完善系列教程。depot_tools代理设置参考老张《史上最牛逼的墙内下载webrtc代码说明_20150401》0、官方源码svn自2015-3-24已迁至谷歌g

2015-04-07 11:48:14 5194

转载 新sdk(5.0+)eclipse建android工程报错

右键项目properties——android——选择android5.0.1,选project——clean,生成R.java,但appcompat_v7还报错。右键appcompat_v7,选properties——android——选择android5.0.1,选project——clean,错误消失。

2015-04-16 10:42:02 2854

原创 inline与lnk2001、lnk2019,鸡肋?

inline函数居然出现了lnk2001、lnk2019,先贴代码。a.h#pragma onceclass A{public:    inline void foo();    void use_foo();}; a.cpp#include "A.h"inline void A::foo(){}void A::use_foo(){

2013-07-15 15:46:19 3582

原创 VS2012配置astyle格式化代码

1、工具-》扩展和更新,搜astyle插件,下载安装重启,当前是2.0版本。2、工具-》选项-》AStyle Formatter-》Edit,填入下面的,点击save,确定。--style=allman --indent=spaces=4 --indent-switches --indent-cases --break-blocks=all --pad-oper --delete-empt

2013-07-15 15:44:10 8643 1

原创 pyton查询mysql数据库中文乱码问题解决

1、查看数据库该字段是否是utf8编码,改为utf8编码。2、python脚本头声明utf8:#!/usr/bin/python#coding=utf-83、conn=MySQLdb.connect(host,user,passwd,db,port,charset = "utf8")一定要加上charset =4、脚本编码另存为utf8 无BOM,即无UTF8开头的三个字节

2013-05-20 16:26:00 2747

原创 Google Breakpad之七,android平台简明用法

google breakpad android简易使用方法:breakpad是一个跨平台的c++崩溃处理系统。包括:dmp生成模块、 上传模块、 服务器存储模块、解析dmp模块 等。初级只使用dmp生成模块,再加上手动分析dmp即可。1、编译静态库解压并拷贝breakpad源码目录到项目中,编译:./configure --host=arm-linux-androideab

2013-04-01 21:16:30 12909 1

翻译 #4.7.2的gcc的针对libstdc++的configure翻译

ConfigureWhen configuring libstdc++, you'll have to configure the entire gccsrcdir directory. Consider using the toplevel gcc configuration option--enable-languages=c++, which saves time by only

2013-02-04 16:15:28 4457

原创 #gcc4.7.2编译以支持c++11标准,解决not a member问题

参考http://blog.csdn.net/cssmhyl/article/details/8114386编译4.7.2,对原作者表示感谢。使用g++4.7.2熟悉c++11,遇到下面问题。。'thread' isnotamemberof 'std'yield' is not a member of 'std::this_thread'sleep_for’ is not a

2013-01-31 14:44:28 10917

原创 #android-ndk-r8d 独立编译工具链的制作和安装

本系统是CentOS6.3 x86_64,其它linux也可以。以root登录,其它账户也可,只要有某些目录的读写权限即可。1、官网下载解包android-ndk-r8d到某目录,终端进入该目录。2、生成独立工具链先确定目标android版本,和android api level有如下对应关系:    android-3      -> Official Android 1.5

2013-01-30 13:16:39 4609

原创 #android-ndk-r8d 使用 独立 编译 工具链 官方文档 中文版

使用ANDROID作为一个独立的编译器工具链======================================================该文档解释了如何做:1/选择你的工具链:----------------------------做任何东西之前,你需要决定是否你的独立的工具链是基于arm的设备,基于x86的,或基于mips的哪一个。每个架构对应一个不同的工

2013-01-30 10:57:47 4094

原创 #android-ndk-r8d 使用 独立 编译 工具链 官方文档 中英文 对照

USING THE ANDROID TOOLCHAIN AS A STANDALONE COMPILER使用ANDROID作为一个独立的编译器工具链======================================================It is now possible to use the toolchains provided with the Android

2013-01-30 10:45:35 5894

原创 @C++11 Thread support library 概览 线程库中英文对照

地址:http://en.cppreference.com/w/cpp/threadThread support library 1 Threads线程1.1 Functions managing the current thread管理当前线程函数 2 Mutual exclusion互斥量2.1 Generic m

2013-01-23 15:27:38 3855

原创 @C++11 的新特性 对C++技术格局的影响

C++ referenceFrom CppreferenceJump to: navigation, search FAQLanguage PreprocessorKeywordsHeadersOperator precedenceEscape sequencesASCII char

2013-01-23 14:23:48 4468

转载 #nm 命令 列出目标文件的符号清单

nm 命令linux中,nm用来列出目标文件的符号清单。下面是nm命令的格式: nm [-a|--debug-syms] [-g|--extern-only] [-B][-C|--demangle] [-D|--dynamic] [-s|--print-armap][-o|--print-file-name] [-n|--numeric-sort][-p|--no-sort] [-r|--

2013-01-23 10:14:54 3209

转载 #linux 打包 静态库

有几个.a的静态库,想打成一个用先解包成o文件ar x libaaa.aar x libbbb.aar rcs libccc.a *.oar 命令用途维护链接编辑器使用的索引库。语法ar [ -c ] [ -l ] [ -g | -o ] [ -s ] [ -v ] [ -C ] [ -T ] [ -z ] { -h | -p | -t | -x }

2013-01-22 20:29:01 5854

转载 !NAT and Traversal NAT(TURN/STUN/ICE)

NATNAT有4种不同的类型1) Full Cone这种NAT内部的机器A连接过外网机器C后,NAT会打开一个端口.然后外网的任何发到这个打开的端口的UDP数据报都可以到达A.不管是不是C发过来的.例如 A:192.168.8.100 NAT:202.100.100.100 C:292.88.88.88A(192.168.8.100:5000) -> NAT(202.100.1

2013-01-22 14:13:57 2841

原创 @不include头文件 照样使用里边的类型的方法,适用于封装库

其实这项功能一直就有,只不过网上提的人不多。适用背景:1、有不想暴露给别人的头文件2、有不能include某头文件的需求,如:该文件有类型冲突的定义等等。3、不用提供源码,只需提供头文件和库文件举个例子://a.hclass A{public: A() { printf("class A\n"); }};//b.hclass B : public

2013-01-21 15:15:39 3268

原创 windows 和 linux 清理 临时 文件 的脚本

工程需要打包但是仅仅使用解决方案的右键-》清理,是无法干净的。使用这个脚本即可瞬间干净,无用的文件夹可以手动删除。复制粘贴为clean.bat文件,复制到工程根目录,双击执行即可,很容易看懂,可以自己手动增减文件类型。linux下要chmod 777 clean.bat  ::DOS自动运行下面的::vs产生的临时文件del /s /f /q *.objdel /s

2013-01-20 20:16:27 2651

原创 开源库 pjnath的改造,异步接口 修改 为 同步 超时返回 接口

提供一种思路,将pjnath非阻塞函数改造为阻塞函数,同样适用其他非阻塞接口。背景:开源库有时候提供的接口并不人性化,例如:pjnath里的pj_ice_strans_create用来创建一个ice,它调用了sess_init_update(用来检测ice的候选candidate的)。我们知道本机客户端获取的自身candidate一般需要两个以上才能够有效的实现对remote实现n

2013-01-19 18:27:29 4055 2

原创 C++和C的源码混合使用需要了解的事

你需要掌握C和C++的语法。如果你有个c的可用源码,尽量不要去修改它,而是建个.h来输出声明,在外边的源码文件中再进行封装。理由:1、因为c源码里边经常是回调、结构体、多线程、全局变量满天飞,修改它是自找麻烦。2、即便成功修改为c++文件,那么它就不能用于c的工程中了,有害无益。 当你把cpp的文件改为c编译时,错误肯定会成百上千,下面介绍错误对应的解决方法。当你的c+

2013-01-18 19:01:31 1980

原创 开源库的选择和驾驭

C/C++的开源库大部分还是比较好的,体现在:1、开源,意味着可以使用lib或源码,这点很灵活。2、功能现成,意味着我们不需要再重复劳动。3、一般较符合标准国际,通用性好。4、一般免费,license较宽松,具体见GPL LGPL BSD等license,然而我们是天朝的特殊情况,你懂的。。然而好的库,其实未必好用,有很多坑,甚至不明显,甚至坑很深:1、即便成熟的库(尤其是

2013-01-18 17:02:09 5236 1

原创 解决VS 2012 升级sp1 导致 “Visual Studio 遇到了异常。这个可能是由某个扩展导致的”

解决方法:1、先查看注册表是否和下面一致。在运行中输入命令:regedit,打开注册表编辑器32位系统查找注册表的项:[HKEY_CLASSES_ROOT\CLSID\{73B7DC00-F498-4ABD-AB79-D07AFD52F395}\InProcServer32],把它的默认值修改为:C:\Program Files\Common Files\Microsoft

2013-01-16 09:42:11 8219 2

原创 vs2012 error LNK2038 RuntimeLibrary 不匹配的解决

在工程上右键-》属性-》c/c++-》代码生成-》运行库改成(release为MT,debug为MTD)即可解决:error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MT_StaticRelease”不匹配值“MD_DynamicRelease”

2013-01-12 21:14:34 40213 9

转载 使用Android NDK中的独立toolchain来开发C/C++程序

从网上可以找到一些ARM toolchain,但是由于Android系统使用的不是glibc而是Bionic libc。因此只能使用静态编译程序。其实Android的NDK自带了toolchain,但是不能直接使用NDK目录内的toolchain,否则会出现找不到crtbegin_dynamic.o文件。即使用-L指定目录或者直接放到gcc命令行也还是提示该文件找不到。(参考最后附上的链接

2013-01-03 13:43:55 1256

原创 Google Breakpad之六,mac平台crash

E文-》http://code.google.com/p/google-breakpad/wiki/MacBreakpadStarterGuide 有时候英文的意会,比中文翻译更能帮助理解。如何把breakpad加入你的mac程序How To Add Breakpad To Your Mac Client ApplicationPreparing a binary bu

2012-12-29 14:27:15 5649

原创 STL 跨模块 调用 异常 解决

百度了一天,现在把结论放上边:1、不要用STL(std::string属于STL)来跨模块传输数据,例如:dll(so)之间,dll(so)和exe(elf)之间。解决方法:使用基本类型、数组、结构体,或者使用下面文章中的方法。2、不要跨模块申请和释放内存。解决方法:可以实现一个接口来释放,其他方法参考下面。今天用个测试exe调用了个dll,有个接口返回std::string,

2012-12-24 14:49:57 4000 2

原创 Google Breakpad之五,处理器设计

E文-》http://code.google.com/p/google-breakpad/wiki/ProcessorDesignBreakpad Processor 库目标Breakpad processor library是一个处理多平台崩溃的dump的框架,用于显示每个线程调用链的堆栈信息。处理后,数据变为对库使用者可用的数据。背景Breakpad的处理器旨在坐为核心的一

2012-12-18 16:10:03 2887

原创 FEC(Forward Error Correction)前向纠错 UDP\RTP 中使用用于改善无线等网络丢包等问题

FEC(Forward Error Correction)前向纠错 UDP\RTP 中使用用于改善无线等网络丢包等问题算法暂不介绍。思路:FEC ENCODE 增加冗余包,当无线等网络丢包之后,接收端使用冗余包可将丢失的包DECODE出来。举例:10个包,编码后会增加2个包,共12个包发送到接收端,接收端丢失5和9包,仅靠剩下的10个包就可以解出5和9包。结果就是,接收端接收到了完

2012-12-17 14:55:07 3460 1

原创 Google Breakpad 之四,客户端设计

E文好的直接移步--》http://code.google.com/p/google-breakpad/wiki/ClientDesign部分按照自己的理解来说,一部分来自翻译软件,一些和模块相关术语还是用英文比如handler和sender。Breakpad 客户端库目标说白了,就是handler负责产生dump,sender负责上传。因为程序crash时,自己的堆栈被破坏,本身

2012-12-17 14:44:18 3331

原创 Google Breakpad 之三,实战Windows平台crash

Windows,今天你的C挂挂程序挂了没?还是Google大牛的地址http://code.google.com/p/google-breakpad/wiki/WindowsClientIntegration本人还是白话,术语用E文。首先产生工程文件,下载python2.7,windows二进制版本安装好,设好Path环境变量。然后Dos进入Breakpad目录,设置好使用vs20

2012-12-13 18:14:03 6887

原创 Google Breakpad 之二,实战Linux平台本地crash

Linux,今天你的C挂挂程序 挂了没有?Linux本地程序crash定位处理,发送到服务端以后在介绍。还是来自Google:http://code.google.com/p/google-breakpad/wiki/LinuxStarterGuide由于有代码等原因,本人直接按自己理解,白话,E文好的直接点链接看。怎样把Breakpad加入你的程序呢,E文

2012-12-13 17:20:11 13939 6

原创 Google Breakpad 之一,跨平台crash 处理上报系统简介

C/C++程序最棘手的时候就是一个字“挂”,总是经常和不经常的挂掉,尤其是那些线上的不经常挂的情况,光看日志定位问题真的很难。为解决C挂挂的问题,有必要提供一个跨平台的crash处理系统,目前已知的支持平台有windows 、Linux、 OS X 、android、等待。下面就来看看Google自己用的系统:Breakpad最好的介绍莫过于谷歌自己的:谷歌的介绍:http://c

2012-12-13 14:59:21 12950

转载 线程安全可重入性与可重入性函数

如果一个函数的实现里面在不加锁的情况之下随意操作全局变量,那么它就是线程不安全的,因为该函数没有限制全局变量,没有让全局变量更加“适应”线 程。那么什么是可重入函数呢?顾名思义,可重入就是一个执行绪没有离开这个函数的时候允许另一个执行绪进入该函数。线程安全强调的是该函数的实现操作,而 可重入性则更多的强调该函数的调用规则,因此函数的可重入性约束要高于线程安全,可重入函数一定是线程安全的,可重入函数

2012-11-09 16:37:51 855

原创 inline解决 error lnk2005

h文件中有个普通函数(非类成员)有实现代码,被多个h使用,编译时提示error lnk2005,加入inline 解决。声明为内嵌函数,编译时类似宏一样直接替换至调用代码段进行编译,不会产生全局连接符号,所以不会产生lnk2005。类的成员函数在.h中短代码的实现,编译器经常自动加入inline进行编译。例如:Get()这样短小的函数放在h文件中class A{pubic:

2012-11-09 15:00:56 920

原创 vs2010中加入多个目录的源码

1、在解决方案下的目录中拷入代码2、解决方案管理器下面有一行工具栏,点击第二个按钮“显示所有文件”3、在想要加入的文件夹上右键“包括在项目中”4、点击第二个按钮“显示所有文件”

2012-11-08 20:41:20 1843

原创 enterprise architect (EA) 源码生成UML类图,帮助理解项目工程

用VS看大型工程代码,尤其是很多层类的,很容易头晕,即便是装了visual assist 插件。用VS生成类图吧,只能生成一堆框,只有一些小的类关系有箭头表示。远远不能满足要求。下面介绍建模工具EA来生成类图。1、新建类图(例如ClassModel),没用的图表删除,ctrl+s保存。2、选中类图(ClassModel),shift+ctrl+u打开对话框,选好根目录,一般是该模块或项目源

2012-10-24 21:15:01 18418 6

转载 网络协议

网路协议应用层DHCP ·DNS · FTP · Gopher ·HTTP · IMAP4 · IRC · NNTP · XMPP · POP3 · SIP · SMTP · SNMP · SSH · TELNET · RPC · RTCP · RTP ·RTSP ·SDP · SOAP · GTP ·

2012-10-17 16:48:43 870

原创 LRU MRU应用场景

想在系统有限的内存中存储使用最频繁数据,并且查找时间复杂度小。直接用hashmap无法实现,查找复杂度接近O(1),但是不能保证存储的是有效的数据。

2012-09-19 12:50:18 2183

达内的proc笔记和代码

达内的proc笔记和代码达内的proc笔记和代码

2008-09-13

达内的plsql笔记和代码

达内的plsql笔记和代码 达内的plsql笔记和代码

2008-09-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除