10 太上绝情

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 2w+

LD_LIBRARY_PATH导致update-initramfs后找不到库的错误

LD_LIBRARY_PATH导致update-initramfs后找不到库的错误背景本文需要对linux引导启动过程有一定的了解最近在linux上要实现类似于冰点还原的功能,需要借助aufs文件操作系统来实现,而这种类型的驱动模块安装后要重新制作initramfs引导。所以需要在程序中自动的修改系统引导。但是在开发的过程中发现如果使用自己的程序调用脚本修改系统引导会导致系统无法启动,引导阶段提示systemd-udev在启动的时候找不到libcrypto.so。而如果直接在shell里调用脚本,不

2020-06-19 10:18:23

windows electron-4.0.5编译指南

windows electron-4.0.5编译指南前言最近项目中用到electron,但是electron占用磁盘空间太大,所以想对electron做一波精简,但是做精简的前提是自己编译electron。发现网上能找到的相关文章基本过时,官方编译指南对于没有掌握一定的google系构建系统知识的人来说过于简单。所以将我在此次编译过程中遇到的问题与过程记录下来,希望能对有需要的人提供帮助...

2019-05-19 20:44:17

使用cmake安装nuget

使用cmake安装nuget目前在vs上c++项目对第三方库的引用通过nuge来引用。但是一些跨平台项目使用cmake构建,cmake生成脚本中没有提供nuget的支持。使用nuget本质就是导入了一个从服务器上下载的targets文件,cmake3.8支持了向项目中添加targets文件。所以可以借助这一特性间接的使得cmake脚本支持nuget。本文章所述内容必须要使用cmake3

2018-01-31 16:58:26

python中正确显示windows系统上其他进程的输出

python中正确显示windows系统上其他进程的输出现象 try: subprocess.check_output(cmd_list) except subprocess.CalledProcessError as e: error = e.output.decode() print("erro

2017-11-25 11:37:45

TCP新手误区--数据校验的意义

TCP新手误区–数据校验的意义背景最近面试了很多的学生,发现很多TCP的新手对于TCP的使用有一些误区,而这些坑也是当初我曾经疑惑过得地方。网上很少有文章对这些问题有过详细的解析,即是有也只是直接给出结论和做法,没有人将其中的来龙去脉讲解清楚,所以我将这些问题的来龙去脉在这一系列的文章中讲述出来,希望能让广大TCP的新手避开这些坑。问题我面试时经常会问的一个问题是TCP如何保证数据的正确性,保证数据

2017-07-15 23:00:11

使用libmp3lame库编码mp3

使用libmp3lame库编码mp3LAMElame是一个有名的开源mp3编码库,但是目前网上使用lame库的教程基本都是直接贴一篇代码,没有任何的解释,而每个使用者需要编码的需求都不一样,这些所谓的教程基本没什么作用。 这篇文章将会介绍如何调用lame库的接口编码出mp3。不同于目前网上的大多数lame教程,本文不会干巴巴的贴一屏幕代码,而是尽量对lame库提供的各种参数设置的接口做讲解。让读者

2017-06-18 17:26:55

TCP新手误区--粘包的处理

TCP新手误区–粘包的处理背景最近面试了很多的学生,发现很多TCP的新手对于TCP的使用有一些误区,而这些坑也是当初我曾经疑惑过得地方。网上很少有文章对这些问题有过详细的解析,即是有也只是直接给出结论和做法,没有人将其中的来龙去脉讲解清楚,所以我将这些问题的来龙去脉在这一系列的文章中讲述出来,希望能让广大TCP的新手避开这些坑。问题我面试时经常会问的一个问题是当TCP两端A、B建立了连接后,A端先发

2017-06-16 21:45:47

TCP新手误区--心跳的意义

TCP新手误区–心跳的意义背景最近面试了很多的学生,发现很多TCP的新手对于TCP的使用有一些误区,而这些坑也是当初我曾经疑惑过得地方。网上很少有文章对这些问题有过详细的解析,即是有也只是直接给出结论和做法,没有人将其中的来龙去脉讲解清楚,所以我将这些问题的来龙去脉在这一系列的文章中讲述出来,希望能让广大TCP的新手避开这些坑。问题我面试时经常会问的一个问题是当TCP两端A、B建立了连接后,如果一端

2017-05-01 23:56:49

使用ffmpeg、x264库强制编出关键帧(I帧)

使用ffmpeg、x264库强制编出关键帧(I帧)背景当h264数据在使用udp传输时,丢包是一件很常见的事情,当接收端丢包发生后,应该通知发送端,让发送端立刻重新发送一个关键帧。此时就需要编码器无视关键帧间隔立刻编出一个关键帧。那么怎么让编码器立刻编出关键帧呢?接下来就列举常用的两种编码器ffmpeg、x264重编出关键帧的方法。编码库的使用方法在网上有很多文章。本文假设读者已经了解编码库的使用,

2017-05-01 00:53:43

shell之export难点解析

shell之export难点解析shell中的export的作用是将脚本中的变量导出,使得变量在此脚本之外也能起作用。 export的使用中有一些难点和容易理解错误的地方,在此特别记录下来。生效时机在脚本A中export变量后要注意的是导出的变量并不会在脚本A执行完后在执行脚本A的shell中生效,而是会在脚本A中启动的其他的脚本后在其他的脚本中生效。注意:脚本A里export了一个变量V,那么只

2017-04-29 13:20:57

shell中的几种少见的变量继承(传递)方式

shell中的几种少见的变量继承(传递)方式背景众所周知,父shell中的临时变量是不能被子shell继承的。要想继承只能在父shell中将变量使用export导出,变为环境变量。 但是这几天研究一些著名开源项目中的configure脚本,发现了一些不同寻常的方式可以让子shell继承父shell中的变量而不用export导出。使用小括号传递变量AA=aa(echo ${AA})按理说小括号里的

2017-04-29 13:10:55

调试托管程序中加载的本机dll

调试托管程序中加载的本机dll背景最近和c#的同事一起开发一个程序,我用c++开发sdk的dll,主程序使用c#开发。但是在调试过程中遇到了一些问题,vs附加c#程序后无法调试c++代码。现象在程序运行的过程中,sdk出现了一些问题,我需要调试c++代码。当我使用vs附加到运行的进程后发现c++dll的符号并没有被加载,断点无法生效。而且我确定pdb文件已经和dll文件放在一起,不可能是找不到pdb

2017-04-23 21:37:17

ortp数据收发调度器源码分析

ortp数据收发调度器源码分析rtp在传输中需要定时的去收发数据,ortp库中提供了这种调度器机制,这篇文章主要着眼于ortp的调度器的代码进行分析。架构ortp的调度器分三个部分。 - 第一个部分在每个rtpsession中,有一个WaitPoint结构体,其中有估算的下一次接收或发送的时间,唤醒用的条件变量和一个唤醒标识。 - 第二个部分是一个全局的调度器,这个调度器是ortp库全局唯一的,

2017-02-22 18:51:47

ortp定时器源码分析

ortp定时器源码分析ortp中的定时器模块仅仅在数据收发的调度器中有被使用,所以非常简单。由于要跨平台所以定时器的代码实现都是调用了各个平台上的原生定时器接口。本文主要基于windows平台实现进行分析。架构定时器是一个结构体,结构体中含有初始化,等待超时,销毁三个函数指针,使用的时候通过调用这几个函数来使用。还有一个周期成员但是其实并没有任何作用,真正的周期已经写死在代码里无法修改。结构体Rtp

2017-02-22 18:35:56

ortp事件处理源码分析

ortp事件处理源码阅读笔记结构ortp是使用c语言编写的一个库,里面的数据结构都是以c语言的形式写成的,都是有struct作为存储结构,一些专用的操作函数作为方法。这篇文章专注于其中的事件处理代码。mblk_ttypedef struct msgb{ struct msgb *b_prev; struct msgb *b_next; struct msgb *b_con

2017-02-13 09:53:22

windows下判断网卡是否是虚拟网卡的方式

windows下判断网卡是否是虚拟网卡的方式网上流传的判断虚拟网卡的方式通常是判断网卡名称,以PCI开头的网卡都是真实网卡。因为以前网卡都是PCI网卡,不是的就是虚拟网卡。但是这种方式不一定全部正确,因为现在有些网卡不是PCI网卡,例如USB网卡,但是它依然是真实网卡。所以这种方法就不在可靠了。 最可靠的方法是读取注册表来判断,是我目前发现的最可靠的方法。 首先要知道网卡的名字,可以通过GetA

2017-02-04 19:05:34

在windows上创建完美的不规则窗口

在windows上创建完美的不规则窗口不规则窗口方法简介windows上的窗口绝大多数是方形的,但是偶尔也会有一些其他形状的窗口,如圆形甚至不规则形状。这些不常见的窗口是如何做出来的呢? 有两种方法可以创建不规则窗口 1、windows在很早的时代就支持不规则形状的窗口了。windows提供了SetWindowRgn 函数来设置窗口的区域,还提供了一些函数来创建椭圆、圆角矩形区域,还可以自己绘制

2017-02-04 19:01:03

使用vc++创建windows透明窗口

使用vc++创建windows透明窗口windows下的透明窗口有不少的实现方法,最简单的当属空画刷啦,但是这篇文章将的是用layer window(分层窗口)来实现透明窗口。 见过vista/win7中窗口漂亮的半透明特效吗?用layer window可以轻松实现,而且其实layer window在古老的windows2000中就已经实现啦。基本不用考虑平台的问题。layer window其实就

2017-02-04 18:53:13

STM_SETIMAGE引起的gdi内存泄露

STM_SETIMAGE引起的gdi内存泄露最近给程序加了一个动画功能后,发现程序会引起及其严重的内存泄露,找了半天发现是调用STM_SETIMAGE引起的。素以在此将使用STM_SETIMAGE遇到的问题记录一下。 我的程序将动画的所有帧提前加载后用定时器循环用STM_SETIMAGE把位图句柄发送到窗口显示,发现没显示一次就泄露好几M内存,而且动画切换的速度是很快的,所以不一会就开始bad_a

2017-02-04 18:48:20

gdi+的画图抗锯齿原理

gdi+的画图抗锯齿原理最近解决以前的一个问题时需要画一个没有锯齿的椭圆区域来,以前的版本画的椭圆被客户投诉锯齿太明显,我一看锯齿确实明显,如果放在大平板这种dpi比较低的屏幕上那就更明显了。 听说gdi+能够抗锯齿,然后就用了一下,画出来的椭圆果然没有了锯齿。本以为事情就这样顺利的结束了,结果出现了意外。我用gdi+画出来的圆边缘非常光滑,但是最后生成的的椭圆区域却依然锯齿满满。 最后将gdi

2017-02-04 18:44:22

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。