自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

山的那一边

迷迷瞪瞪上山,稀里糊涂过河

  • 博客(38)
  • 资源 (5)
  • 收藏
  • 关注

原创 使用fork(), pipe() 实现linux的popen, pclose功能

为什么要自己实现一个popen\pclose函数功能呢?因为,有时系统popen打开的文件,有时会出现pclose时一直阻塞着,导致整个应用程序无法正常结束,此时使用我们自己实现的popen,则可以获得进程ID,然后通过kill该进程ID来结束popen开启的文件;FILE* Popen(const char* commandstr, const char* mode){ pi...

2019-03-13 15:16:08 616

原创 windows路由添加

摘要:https://docs.microsoft.com/zh-cn/windows/desktop/api/ipmib/ns-ipmib-_mib_ipforwardrow涉及的API:CreateIpForwardEntry  // 添加路由到路由表中GetIpForwardTable // 访问路由表GetIpInterfaceEntry  // 获取指定网卡接口信息...

2018-12-12 11:11:10 1015

原创 微信公众号开发---nginx反向代理

nginx反向代理网上资料也很多,最主要的是proxy_set_header Host  设置 和 proxy_pass 设置,这里设置为natapp分配的域名(免费域名当天有效,所以每天都要重启并重新设置代理)。这里是https的配置,http也是类似# HTTPS 证书配置 by liucongkuanserver {     listen  443;     server_name    w...

2018-06-07 16:33:45 7002 1

原创 微信公众号开发---本地调试

微信公众号开发时,本地调试步骤:1、首先要申请号公众号2、申请域名,并认证通过(我选择的阿里云,微信接入需要实名认证)3、服务器配置nginx反向代理(注意,服务器端口一定要80或443端口)4、局域网做内网映射(natapp是免费的)5、本地tomcat跑起来,就可以调试了为什么要做本地调试,这个就不用多说了吧。按照上面的配置好以后,微信公众号开发的调试就跟平时开发一样了...

2018-06-07 16:23:39 1117

原创 微信公众号页面不显示问题--https证书问题

最近在开发微信公众号时,遇到一个问题:公众号页面在PC端微信上可以显示,但是手机端却显示不出来。这个问题估计大家都遇到过,我把原因简单的说一下。由于我们需要用到微信的JS接口,于是使用了https协议,但是证书是第三方网站购买的估计是腾讯不认可第三方证书。最后换成阿里云上购买的证书安装以后,手机上显示正常了。所以大家现在明白是啥情况了吧。...

2018-06-07 16:09:47 13423

原创 VS2017 栈溢出异常:test dword ptr [eax],eax ; probe page.

最近在vs2017下开发时,程序编译正常,但是总是报栈溢出异常;经过多次检查代码和测试,发现栈空间太小导致异常;【发现问题前】1、创建线程时,使用的默认栈大小2、线程内函数调用,分配了5MB内存(栈上分配)3、调用DownLoadFile函数时,开辟栈空间失败,内存溢出发生异常了【问题分析】以前版本的VS中,创建线程时不指定栈大小,使用系统默认配置,不会出现问题;但是,vs2017中就要注意了,临...

2018-04-20 14:20:45 625

转载 Makefile 使用总结

Makefile 使用总结转自:http://www.cnblogs.com/wang_yb/p/3990952.html个人认为是写的比较好的,适合初学者。

2016-06-23 17:09:10 302

原创 YUY2转RGB(或BGR)

//YUY2视频转化RGB格式inline void YUY2_RGB(BYTE *YUY2buff,BYTE *RGBbuff,int dwSize) { //B = 1.164(Y - 16) + 2.018(U - 128) //G = 1.164(Y - 16) - 0.813(V - 128) - 0.391(U - 128) /

2016-03-30 13:14:21 5011

原创 Service启动方式之startService,及注意事项

Service启动方式之startService详见:http://www.2cto.com/kf/201302/190157.htmlAndroid开发的过程中,每次调用startService(Intent)的时候,都会调用该Service对象的onStartCommand(Intent,int,int)方法,然后在onStartCommand方法中做一些处理.这是大家常用的方

2015-10-20 15:24:28 958

原创 如何将ffmpeg移植到Android平台

编译带h264编码器的ffmepg库在Android4.6平台上运行,主要步骤如下:1、下载ffmpeg源码(我使用的2.7版本)2、下载h264编码器3、编译h264编码器静态库(build_h264.sh)export NDK=/home/juhaowangluo/ndk/android-ndk-r10dexport PREBUILT=$NDK/toolchains/arm-

2015-07-28 11:29:06 708

原创 C++使用ADO技术实现Excel文件的读写操作

1、C++如何使用ADO(如何生成连接字符串)http://blog.csdn.net/asanscape/article/details/6084600 错误处理:1、操作必须使用一个可更新的查询       当前记录集不支持更新http://blog.csdn.net/testcs_dn/article/details/25500973 案例:1、打开Exc

2015-01-22 18:27:47 2850

原创 MFC的CListCtrl改造给虚拟列表使用

class CVirtualListCtrl : public CListCtrl{ DECLARE_DYNAMIC(CVirtualListCtrl)public: CVirtualListCtrl(); virtual ~CVirtualListCtrl(); virtual int UpdateItem(LV_ITEM& rItem) = 0;

2014-11-29 08:18:40 1871 3

原创 关于CString的GetBuffer 和 ReleaseBuffe .

MFC工程中经常用到CString对象,方便字符串的

2014-08-18 15:05:46 903 1

原创 windows文件的常规读写

1、创建隐藏属性的临时文件,且文件被关闭时会自动删除2、判断访问的文件类型(文件、磁盘、管道等)3、文件的随机读写操作4、手动将写入高速缓存中的数据,刷新到磁盘5、动态调整文件的大小6、获取文件的逻辑大小或物理大小 //创建一个文件test.txt(隐藏的临时文件,且文件关闭时会被系统自动删除) HANDLE hFile = CreateFile( TEXT("C:\\t

2014-01-28 23:28:07 948

原创 WaitableTimer与SetTimer的区别

在Window中常用的是SetTimer计时器,又叫用户计时器(大概是工作在用户模式下吧),大家都很熟悉。它与窗口有关,会产生WM_TIMER消息,优先级最低等等特性。上两节介绍了一个内核模式的可等待计时器,我们来比较一下他们的却别和联系。区别:SetTimer计时器:1. 需要使用窗口界面,从而消耗更多的资源                                 2. 会产

2014-01-26 01:28:14 845

原创 内核对象--可等待计时器WaitableTimer(二)

上节,介绍了时间一到就触发计时器对象;这节,主要介绍时间一到触发计时器对象,同时计时器向线程的APC队列添加一个APC函数。当计时器被触发的时候,如果线程处于可提醒状态,系统会让线程调用回调函数。为了添加一个APC到队列中,需要按如下步骤操作:1、实现一个APC函数VOID    APIENTRY    TimerAPCToutine(    PVOID  pvArgT

2014-01-26 00:17:36 799

原创 内核对象--可等待计时器WaitableTimer(一)

可等待计时器内核对象:它会在某个指定的时间触发,或每隔一段时间触发一次。使用步骤:1、创建内核对象HANDLE CreateWaitableTimer(PSECURITY_ATTRIBUTESpsa, BOOL bManualReset, PCTSTRpszName);2、设置触发计时器的触发条件如果想要触发计时器,必须调用SetWaitableTimer函数。BO

2014-01-25 21:07:25 880

原创 Window进程内多线程同步

处于同一进程内的多线程数据同步有一下几种方式:1、InterLock系列函数主要用于单个资源的同步2、旋转锁单CPU的机器,不要使用自旋锁,会出现死锁的状态。(因为当前线程一直在锁内旋转,单个CPU是没有机会切换到另一个线程中进行执行)3、volatile关键字如果没有可用的同步方式时,可以使用volatile进行同步。(这种方式很劣势,当两个线程不在同一优先级上,

2014-01-24 17:10:47 653

原创 用C++来编写JNI代码

C不是面向对象语言,但是C++是。这就是为什么我们不用C像C++一样来编写JNI。在C中,JNIEnv实际上是一个包含函数指针的结构体。当然,当一个JNIEnv给你时,所有的指针都已经初始化了,因此,你可以像对象一样调用它们。然而,this参数隐含在一个面向对象语言中,在C中作为第一个参数(pJNIEnv)。此外,JNIEnv在运行一个方法前,需要先解引用:         jclas

2013-12-15 23:04:44 877

原创 Android JNI抛出异常处理

为了从JNI中抛出一个java异常,首先,使用FindClass()找到对应的类(像使用java的反射API);这里通过JNI提供的机制,很好的介绍了java的回调。在JNI中使用指定的jcalss来表示引用的java类。这里使用jclass类型来描述一个异常实例,并在当前类加载器中通过完整名称(包含包路径)来搜索类描述符。此外,我们不长时间需要引用异常类时,可以使用DeleteLocalRef(

2013-12-15 22:29:11 1760

转载 VS2005(vs2008,vs2010)使用map文件查找程序崩溃原因

一般程序崩溃可以通过debug,找到程序在那一行代码崩溃了,最近编一个多线程的程序,都不知道在那发生错误,多线程并发,又不好单行调试,终于找到一个比较好的方法来找原因,通过生成map文件,由于2005取消map文件生成行号信息(vc6.0下是可以生成行号信息的,不知道microsoft怎么想的,在2005上取消了),只能定位在那个函数发生崩溃。这里可以通过生成cod文件,即机器码这一文件,具体定位

2013-10-24 10:11:23 1250 2

转载 让程序在崩溃时体面的退出之CallStack .

[转]让程序在崩溃时体面的退出之CallStackhttp://blog.csdn.net/starlee/article/details/6618849

2013-10-16 13:51:26 455

原创 16进制字符串转16进制整数

案例:客户端收到传递的时间(9:30) 用整数表示为 0930 ,而另一个接口的时间表示为0x091E(9:30);          为了将9:30的十进制(0930)表示转为16进制(0x09iE)表示,我的做法是先将其转换为16进制字符串,再将字符串转为整数。//转为16进制整数(例如:0930 -> 0x091E)short   CMockShim::int2hex(int

2013-08-29 15:33:32 1397

转载 linux下的ldd

转自:http://www.eifr.com/article.php?id=387 1、首先ldd不是一个可执行程序,而只是一个shell脚本2、ldd 显示依赖库,ldd能够显示可执行模块的dependency,其原理是通过设置一系列的环境变量,如下: LD_TRACE_LOADED_OBJECTS、LD_WARN、LD_BIND_NOW、LD_LIBRARY_VERSION、

2013-08-26 13:09:58 503

转载 利用MAP文件定位程序崩溃位置

作为程序员,我们平时最担心见到的事情是什么?是内存泄漏?是界面不好看?……错啦!我相信我的看法是不会有人反对的——那就是,程序发生了崩溃!“该程序执行了非法操作,即将关闭。请与你的软件供应商联系。”,呵呵,这句 M$ 的“名言”,恐怕就是程序员最担心见到的东西了。有的时候,自己的程序在自己的机器上运行得好好的,但是到了别人的机器上就崩溃了;有时自己在编写和测试的过程中就莫名其妙地遇到了非法

2013-08-15 16:59:37 758

原创 收藏

http://www.csdn.net/article/2013-08-07/2816477-6-source-code-search-engines-you-can-use-for-programming-projects

2013-08-08 16:50:36 654

原创 (ubuntu 9.04) sudo apt-get update 错误处理

最近由于要在linux上编译c++项目,第一次玩这个东西,所以出现很多尴尬事。搭建C++环境需要gcc,这个需要从服务器上更新下来才行;于是执行sudo apt-get update报了部分连接错误,最后在网上发现ubuntu 9.04更新不支持了,要更新的只有到http://old-releases.ubuntu.com地址去更新,于是把/etc/apt/sources.list中的地址全部

2013-07-20 10:45:22 681

原创 打印调试信息

Debug模式:Debug模式下使用TRACE宏打印日志消息,我们可以在OutPut窗口中看到打印的日志信息。 Release模式:此时,使用TRACE宏将是无效,此时可以使用OutputDebugString函数将日志信息打印到另外一个调试窗口中(Dbgview.exe)。Dbgview.exe是专门用来接收Release下的日志打印。 其他方法也可以,比如写log文件;

2013-07-16 16:30:37 505

原创 内存映射

首先,进程A 创建一个命名内存映射对象其次,进程B 通过名称来访问进程A创建的内存映射对象上面操作都成功后就可以进行通信,通信的同步处理可以用命名的事件、信号量等内核对象来实现  //创建内存映射对象 static HANDLE hFileMap = CreateFileMapping(INVALID_HANDLE_VALUE

2013-04-01 10:38:05 563

原创 MFC中使用控制台输出Debug信息

1. 改变整个控制台的颜色用 system("color 0A"); 其中color后面的0是背景色代号,A是前景色代号。各颜色代码如下: 0=黑色 1=蓝色 2=绿色 3=湖蓝色 4=红色 5=紫色 6=黄色 7=白色 8=灰色 9=淡蓝色 A=淡绿色 B=淡浅绿色 C=淡红色 D=淡紫色 E=淡黄色 F=亮白色 2

2013-03-07 12:42:10 789

转载 四种强制类型转换的总结

原文连接:http://blog.csdn.net/jinzhilong580231/article/details/6774985 详解const_casthttp://blog.csdn.net/jinzhilong580231/article/details

2011-10-13 17:04:34 306

原创 volatile+类型限定符详细讲解

请看原文: http://blog.csdn.net/jinzhilong580231/article/details/6779480 案例:线程中volatile变量http://blog.csdn.net/sanshui/article/details

2011-10-13 16:37:45 366

原创 预处理实现条件编译

1.请写出输出结果? #if MAC_IF printf("MAC_IF = 1\n");#elif MAC_IF printf("MAC_IF = 2\n");#else printf("MAC_IF not defined!");#en

2011-10-09 11:37:33 454

原创 windows 多线程编程的几点经验 (防止死锁)

windows 多线程编程的几点经验 (防止死锁)作者: smilestone322 (1 篇文章) 日期: 八月 3, 2011 在 5:48 下午 1) 不要在线程函数体内操作MFC控件,不要再线程里面调用UpdateData函数更新用户界面,而应该尽量采用发

2011-08-05 14:24:15 245

原创 读写ini文件

比如有一个文件update.ini,里面有这些内容:[ZIP]EngineVersion=0DATVersion=5127FileName=dat-5127.zipFilePath=/pub/antivirus/datfiles/4.x/FileSize=13481555Chec

2011-07-14 08:16:22 493

原创 对字典和列表的遍历操作

对字典的遍历: dicTmp = {"姓名":"张三", "性别":"男", "年龄":"20", "婚姻状况":"未婚"}for  index in  range( len(dicTmp) ):     print  "%s:%s" %(dicTmp.keys()[index]

2011-07-13 14:17:00 854

原创 函数定义

def   模块名(参数1,参数2,...):     #语句  例子1:带返回值的函数def   function_one():     return  True 例子2:带默认参数的函数def   function_one(arg1, arg2=True):     if

2011-07-13 13:54:30 301

原创 异常处理

try:     #语句 except  {[异常类] [,异常类变量]}:    #异常处理语句 例子如下: import  os     try:        os.remove(filePath)  #删除文件    except OSError, e:       pr

2011-07-13 13:42:23 261

android 联系人和短信

android 联系人 短信

2014-11-16

ffmepg.dll

ffmepg.dll

2014-03-12

Xvid 编码过滤器-Directshow

环境:XP + VC6 + DirectShow 这是本人写的一个Xvid编码过滤器,支持对YV12、RGB24、RGB32的编码,支持外部接口调用SetFrameRate、SetEncodeQuant分别设置编码时的帧率、编码质量

2010-07-26

Sqlite 组建 BCB2007

在bcb2007下编译的Sqlite组建,添加即可使用,可以多线程使用

2010-07-02

ffmpeg 源码20342 + SDK

ffmpeg C源码 和 SDK开发包 、帮助文档、开发教程 我认为比较详细了,值得下载

2010-06-30

空空如也

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

TA关注的人

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