自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

XscKernel的专栏 记录工作中做的点滴

有些是从老博客转过来的

  • 博客(70)
  • 资源 (4)
  • 问答 (1)
  • 收藏
  • 关注

转载 在VS中编辑修改资源视图后保存时提示-cannot change standard mfc resources ,无法保存资源视图的一个解决方法

如题:在VS中编辑修改资源视图后保存时提示-cannot change standard mfc resources ,无法保存资源视图的一个解决方法通常遇到该问题时,在.rc文件开头都会有#include "afxres.rc"#include "afxprint.rc"这两个包含,原因好像是由于该处的文件是只读的,但是在资源编辑保存时却会去改动该文件,导致一直提示无法保存资源视图;其中一个解决方法,是在资源视图界面,右键鼠标,在资源包括中,查看是不是在符号头文件处的内容为 res

2020-08-20 16:14:11 524

转载 vc++ 使用一个字体而不用安装

这是找了很久 google搜索出来的一个比较完整的很好的解决方案。不仅有代码讲解,还有附件给出了编译好的程序和源码工程。How to Use a Font Without Installing ithttps://www.codeproject.com/Articles/42041/How-to-Use-a-Font-Without-Installing-it#addres附件不容易下载,这里我下载了放到资源里面供免费下载:https://download.csd...

2020-08-20 15:32:19 261

转载 WinDbg链接

MSDN文档一个简单的介绍最基本功能涉及了stack overflow 挺详细的WinDbg配置和使用基础转在WinDBG中查看函数的反汇编代码的命令在WinDBG中查看变量的命令windbg下如何使用bp对指定文件指定源码行数下断使用windbg调试release程序MSDN文档,一个简单的介绍,最基本功能涉及了Getting Started with WinDbg (User-Mo

2016-11-01 19:23:16 818

转载 VC++ try catch

try{} catch(…){}   以前都是用try{} catch(…){}来捕获C++中一些意想不到的异常, 今天看了Winhack的帖子才知道,这种方法在VC中其实是靠不住的。例如下面的代码:try { BYTE* pch ; pch = ( BYTE* )00001234 ; //给予一个非法地址 *pch = 6 ; //对非法地址赋值,会造

2016-10-21 11:20:24 953

转载 Linux 64位系统下 inet_ntoa 报段错误问题

Linux 64位系统下inet_ntoa函数报段错误, 测试环境: Redhat 5.4 enterprise 代码如下#include <stdio.h>#include <sys/socket.h>#include <netinet/in.h>int main(int argc, char *argv[]){ struct sockaddr_in addr; add

2016-09-21 14:06:08 1281

转载 获取窗口句柄

使用FindWindow函数获取窗口句柄使用EnumWindows和EnumChildWindows函数使用GetDesktopWindow和GetNextWindow函数得到所有的子窗口使用FindWindow函数获取窗口句柄  示例:使用FindWindow函数获取窗口句柄,然后获得窗口大小和标题,并且移动窗口到指定位置。#include <Windows.h>#include <std

2016-09-06 14:36:13 1616

转载 FFmpeg视频编解码库,无法解析的外部信号

在编译FFmpeg相关项目时,可能会出现: ``` error LNK2019: 无法解析的外部符号 “int __cdecl avpicture_fill(struct AVPicture ,unsigned char const ,enum AVPixelFormat,int,int)” (?avpicture_fill@@YAHPAUAVPicture@@PBEW4AVPixelForma

2016-09-01 18:04:26 2191

转载 FFMPEG中的时间问题

对于一个电影,帧是这样来显示的:I B B P。现在我们需要在显示B帧之前知道P帧中的信息。因此,帧可能会按照这样的方式来存储:IPBB。这就是为什么我们会有一个解码时间戳和一个显示时间戳的原因。解码时间戳告诉我们什么时候需要解码,显示时间戳告诉我们什么时候需要显示。所以,在这种情况下,我们的流可以是这样的: PTS: 1 4 2 3DTS: 1 2 3

2016-09-01 17:53:53 1554

转载 boost::condition_variable、boost::time_wait使用方法

boost 的线程库不能强行终止,所以通过 time_wait 可以让其自然的结束。// BoostTest.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream> #include <boost/thread/thread.hpp> #include <boost/thread/mutex.hpp> #include

2016-09-01 16:38:33 4358

原创 音频相关

音频帧概念详解AACMP3示例代码附上我写的一个mp3 播放器音频帧概念详解  正常人听觉的频率范围大约在20Hz~20kHz之间。  采样频率是指将模拟声音波形进行数字化时,每秒钟抽取声波幅度样本的次数。   根据奈奎斯特采样理论,为了保证声音不失真,采样频率应该在40kHz左右。   常用的音频采样频率有8kHz、11.025kHz、22.05kHz、16kHz、37.8kHz、44.

2016-09-01 14:26:12 1128

转载 boost多线程库使用指南

基本使用用函数或类实例创建线程 boostthreadthread_group 使用Boost线程库学习笔记yield 放弃时间片 join 等待线程结束使资源是线程安全的保证给mutex加解锁有多种策略读写锁Boost Thread 线程库指南创建线程互斥体 6种互斥体类型条件变量 boostcondition cond线程局部存储 可重入 boostth

2016-09-01 11:06:44 1082

转载 pcm音量计算

以下程序用在16Khz的单声道或者8Khz的双声道的pcm数据的音量计算. 来源自搜索的各种资料加实际测试. 参考源暂未统计出.  注意要求的对数函数是log10,不是log.int pcm_db_count(const unsigned char* ptr, size_t size){ int ndb = 0; short int value; int i;

2016-09-01 09:43:47 2639

原创 桌面录音

公司做一个项目,需要把 windows 扬声器的声音捕捉下来,这个可以参考MSDN文档,上面有示例程序: Loopback RecordingCapturing a Stream这程序并不完整,还需要做一些修改才行:下面是我 调试通过的代码:#include <Mmdeviceapi.h>#include <Audioclient.h>//----------------------------

2016-08-14 16:13:02 2758 4

转载 一个由于锁的作用域导致core dump的问题的解决

如果没定义局部变量 lock 那么生存周期几乎为0请看如下代码:void CCommParams::setParams( const char * authUser, const char * authPsw, const char * securityLevel,

2016-08-14 12:05:31 1707

转载 C++中虚析构函数的作用

我们知道,用C++开发的时候,用来做基类的类的析构函数一般都是虚函数。可是,为什么要这样做呢?下面用一个小例子来说明: 有下面的两个类:class ClxBase{public: ClxBase() {}; virtual ~ClxBase() {}; virtual void DoSomething() { cout << "Do something i

2016-08-14 10:12:37 470

转载 STL的线程安全解决方案

由于STL不是线程安全的, 所以在每一次插入元素,删除元素,读取元素时,必须保证原子操作.   读取元素也许要原子? 嗯,是的. 因为你得到了一个迭代器后, 这个迭代器对应的容器可能被别的线程修改! 所以(下面来自<< Effective STL >> 条款十二): 在每次调用容器的成员函数期间都要锁定该容器。 在每个容器返回的迭代器(例如通过调用begin或end)的生存期

2016-08-02 15:37:56 7784 2

原创 多屏幕显示

获取屏幕个数EnumDisplayDevicessGetSystemMetrics读取显示器参数及其他参数windows 系统提供了多屏显示的功能,首先第一步是获取屏幕个数获取屏幕个数EnumDisplayDevicess函数原型:BOOL EnumDisplayDevices( _In_ LPCTSTR lpDevice, _In_ DWORD

2016-05-31 09:33:05 5704 2

原创 基于arm的C++反汇编 结构体和类

在C++中,结构体和类都具有构造函数、析构函数和成员函数,两者只有一个区別:结构体的访问控制默认为public,而类的默认访问控制是private。对于C++中的结构体而言, public, private、protected的访问控制都是在编译期进行检査,当越权访问时,编译过程中会检査出此类错误并给予提示。编译成功后,程序在执行的过程中不会在访问控制方面做任 何检査和限制。因此,在反汇编中,C++

2016-05-25 21:26:01 1869

原创 基于arm的C++反汇编 数组和指针的寻址

数组在函数内数组作为参数数组作为返回值下标寻址和指针寻址下标值为整型常量的寻址下标值为整型变量的寻址下标值为整型表达式的寻址数组越界多维数组存放指针类型数据的数组指向数组的指针变量  虽然数组和指针都是针对地址操作,但它们有许多不同之处。数组是相同数据类型的数 据集合,以线性方式连续存储在内存中;而指针只是一个保存地址值的4字节变量。在使用中,数组名是一个地址常量值,保存数组首元

2016-05-24 10:37:22 6210

原创 基于arm的C++反汇编 函数的工作原理

栈帧的形成和关闭各种调用方式的考擦使用 fp或sp寻址函数的参数 与返回值arm指令中立即数存放位置gdbserver 调试环境栈帧的形成和关闭栈在内存中是一块特殊的存储空同, 它的存储原则是“先进后出”, 即最先被存储的数据最后被释放, 汇编过程通常使用 push 指令与 POP指令对栈空间执行数据压入和数据弹出操作。栈结构在内存中占用一段连续的存储空间, 通过sp与 fp这两个栈指针寄

2016-05-23 19:04:14 7381

原创 基于arm的C++反汇编 基本数据类型

基本数据类型Cpp中的引用常量常量的定义基本数据类型  反汇编一个基本的知识点就是掌握数据类型,包括整形和浮点类型在内存中是如何存放的,这里要知道原码,反码,补码,以及IEEE浮点标准,这部分与处理器架构无关,《C++反汇编与逆向分析技术揭秘》 第二章已经有详细讲解,这里略过。 在此推荐下我曾经写过的一个进制转换的工具 来学习数据类型 。 Cpp中的引用

2016-05-20 17:42:22 2137 1

原创 基于arm的C++反汇编 qemu-arm环境搭建

看雪高手写了在windows 上基于x86架构的 C++ 反汇编分析,但是没有人弄过在linux下基于arm架构的C++反汇编教程,这里尝试分析下,可以看到不管在win下还是linux下,不管基于x86还是基于arm 都遵循同样的C++标准,内存布局都是一样的。  首先第一步搭建环境,为了方便这里不再从头编译而是使用网络上现成的二进制工具,参考Architectures/ARM/HowToQemu1

2016-05-20 13:35:55 2024

原创 gh0st错误修改

SetPaneText 的崩溃问题WSAIoctl 参数类型导致栈异常CIniFile 构造函数导致异常栈上对象多线程析构函数导致程序崩溃  开始看 gh0st 源码,找来了一份比较纯净的官方代码来读,有点抓狂,听说使用很老的VC6.0写的,现在需要用 VS2010 重新创建工程,并拷贝代码过去,编译,分析整个执行流程,调试每一个遇到的bug,在这过程中学到了很多,记录下来,供后来参考:Set

2016-05-17 18:45:29 2858

转载 MFC不能多线程操作控件的原因

表现错误示例网友hewwatt大致原因解释如下原因分析窗口类MFC状态模块本地数据进程本地数据线程本地数据模块线程状态包装类对象和句柄映射解决办法注意事项  对于大多数mfc对象,请不要在线程间传递它们,不管是栈上的还是堆上的!原因如下:  mfc的大多数类不是线程安全的,调用传入对象的成员函数可能不会报错,但是未必能达到程序预定的功能!  mfc与界面有关的类,其大多数成员方

2016-05-17 15:55:35 5282

原创 gh0st的IOCP模型分析

在分析了那么多IOCP相关api之后想把IOCP模型分析下,本人菜鸟一个,高手勿笑。gh0st是单文档类型的程序框架。 文档类型的都是从theApp开始的。theApp是一个全局变量。 那我们就先看一下CGh0stApp这个类的初始化函数 BOOL CGh0stApp::InitInstance() 下面很大一部分是生成的框架。我给大家指出来,就没必要再看这些了 直到 if (!Pr

2016-05-14 22:00:40 3047 1

转载 IOCP 系列函数讲解

CreateIoCompletionPort详解GetQueuedCompletionStatusPostQueuedCompletionStatusWSASocketSocket与WSASocket的区别WSAEventSelectWSARecvCreateIoCompletionPort()详解函数原型:HANDLE WINAPI CreateIoCompletionPort(

2016-05-14 16:42:26 2512

转载 IOCP 完成端口

什么是IOCP实现方法实现代码什么是IOCP先让我们看看对IOCP的评价I/O完成端口可能是Win32提供的最复杂的内核对象。[Advanced Windows 3rd] Jeffrey RichterIOCP实现高容量网络服务器的最佳方法。[Windows Sockets2.0:Write Scalable Winsock Apps Using Completion Ports] 完成端口模

2016-05-14 15:24:17 1211

原创 win下一些小工具

md5计算工具sha1工具进制转换工具MS IDE 工程清理  整理的一些小工具,需要的拿走:md5计算工具  把MD5.exe 可执行文件,拷贝到系统环境: A:\Windows\System32 里面—A是系统盘。如果想计算某个文件的MD5值可以先回到某个文件的父目录,然后按住shift ,右击出现一行菜单:在此处打开命令行窗口(W)。  打开后输入 MD5 文件名(文件名还可以t

2016-05-14 11:02:34 1384

原创 编译和使用zlib

由于要弄一个项目,在windows下用到zlib库,现成的库都是release版本的,如果项目是debug的就会导致一大堆符号错误,无奈只得自己重新编译zlib库。首先下载 源码和工程文件解压到某个目录开启VS2010 的命令行 32bit进入到zlib-1.2.5\contrib\masmx86目录执行bld_ml32.bat打开工程项目zlib-1.2.5\contrib\vstudio\vc1

2016-05-14 10:24:50 6276

原创 WaitForSingleObject -- setevent 讲解与编程示例

函数一直等待,直到指明的 Handle 处于signed 状态,或者超过规定的时间才返回。  函数原型:DWORD WINAPI WaitForSingleObject( _In_ HANDLE hHandle, _In_ DWORD dwMilliseconds);  hHandle[in]对象句柄。可以指定一系列的对象,如Event、Job、Memory resource noti

2016-05-13 22:01:26 3901

转载 OpenGL入门学习

环境搭建OpenGL入门学习二点直线和多边形在OpenGL中指定顶点开始绘制例一画一个圆例二画一个五角星例三画出正弦函数的图形OpenGL入门学习三关于点关于直线关于多边形OpenGL入门学习四RGBA颜色索引颜色指定清除屏幕用的颜色指定着色模型OpenGL入门学习五模型变换和视图变换投影变换视口变换操作矩阵堆栈综合举例OpenGL入门学习六双缓冲技术

2015-12-04 10:28:21 14639 3

原创 几个小型 bash 例子

求下标的一个 bash 脚本笔记本 Ubuntu 下禁止触摸板求下标的一个 bash 脚本  今天很大力气写了一个脚本,平时很少写, 因此这次几乎每一行都要搜索很久才能弄出来。先说功能   元素作为数组下标 的一个枚举: enum{CSTR_JIE_XI_WANG_LUO_XIN_XI_BIAO,CSTR_PIN_LV_FU_HAO_LV_TIAO_ZHI_FANG_SHI,CSTR_W

2015-12-03 13:55:56 1032

转载 shell 脚本报错^M: syntax error near unexpected token

以前写shell脚本运行的好好的,今天再运行突然出现了错误:syntax error near unexpected token `  网上搜了下正好有人遇到过这个问题,并且给出了解决方式,于是乎就转过来了:  用命令vi -b 打开你的SHELL脚本文件,你会。发现每行脚本最后多了个^M。  那么接下来就要搞清楚这个^M是什么东东?  long long ago….. 老式的电传打字机使用两个字

2015-12-03 11:38:16 1403

原创 Linux framebuffer显示bmp图片

帧缓冲(framebuffer)是Linux为显示设备提供的一个接口,把显存抽象后的一种设备,他允许上层应用程序在图形模式下直接对显示缓冲区进行读写操作。  framebuffer是LCD对应的一种HAL(硬件抽象层),提供抽象的,统一的接口操作,用户不必关心硬件层是怎么实施的。这些都是由Framebuffer设备驱动来完成的。   帧缓冲设备对应的设备文件为/dev/fb*,如果系统有多个显示卡,

2015-11-23 12:35:13 12054 3

原创 setjmp和longjmp函数使用详解

非局部跳转语句—setjmp和longjmp函数。非局部指的是,这不是由普通C语言goto,语句在一个函数内实施的跳转,而是在栈上跳过若干调用帧,返回到当前函数调用路径上的某一个函数中。#include <setjmp.h>int setjmp(jmp_buf env);  返回值:若直接调用则返回0,若从longjmp调用返回则返回非0值void longjmp(jmp_buf env,int

2015-11-13 17:14:18 1056

原创 数字电视业务PSI-SI学习系列

MPEG-2简介TS流的生成与结构DVB的分类DVB SIPSI分析和处理PATProgram Association Table节目关联表PMTProgram Map Table节目映射表CATConditional Access Table条件访问表BATBouquetAssociation Table业务群关联表总结一下DVB搜台的原理EPG原理NIT Network In

2015-11-11 19:16:09 4279

原创 for 循环和while循环区别

do-while循环while循环for循环死循环选择for还是while  C语言提供了好几种循环结构,即while、for和do-while。汇编语言中并没有相应的指令存在,作为替代,将条件测试和跳转组合起来实现循环的效果。大多数汇编器根据一个循环的do-while形式来产生循环代码,即使在实际程序中这种形式用的相对较少。其它的循环会首先转换成do-while形式,然后再编译成机器代码。d

2015-11-11 15:59:26 10648

原创 使用python 修改文件内容

做嵌入式时需要把windows 下的 ads 工程 项目移植到linux 下的gnu项目时候需要做大量重复的修改,比如把ABC EQU 1 修改为#define ABC 1    如果用手工一个个修改很浪费时间,所以就用python脚本来做这些工作,发现很容易就搞定了(以前遇到类似问题总是用c代码来写,代码量很多而且容易出错!!)  源代码如下:def func():

2015-10-22 12:03:54 6068

原创 linux 常用命令 整理

grep 命令过滤不需要内容 -v不显示错误信息忽略大小写mount 命令列出已经挂载的文件系统信息挂载分区1 .grep 命令过滤不需要内容 -v  grep 最常用的就是过滤需要的内容,但有时候想过滤自己不需要的内容可以用 -v 选项:   比如说用 |xargs grep contenta 过滤得到了很多内容,但是也有很多是自己不需要的(不需要的包含了contentb) 可以再

2015-10-08 17:17:01 1125

原创 mips体系堆栈回溯分析与实现

在上家公司做 linux 驱动开发主要基于mips架构,在内核下有一个好玩的函数 dump_stack, 只要调用到这个函数就能把函数的调用栈给打印出来,十分方便,不再需要kgdb断点了。   现在做电视机顶盒开发,各种软硬件平台 arm mips linux ecos 都有,有时候想要获得一个函数从哪里调用来的单凭静态分析根本不行,如果动态运行那就要在每个调用前面加入打印,修改量巨大而且容易出

2015-08-28 17:16:16 10330 9

编译好的程序和源码.rar

vc++ 使用自定义字体用到的代码和程序。 很多时候,由于内部图形设计师的字体选择,应用程序中需要使用特定的字体。为了让应用程序使用字体,需要使用安装程序安装字体。用户机器上太多的字体可能会大大降低系统速度。

2020-08-20

Dropbox 离线包第二部分

Dropbox 离线包

2016-08-23

dropbox 离线包第一部分

dropbox 离线安装包

2016-08-23

Source Insight 使用简单说明

本人从百度文库里面费了九牛二虎之力才下载下来的,这里免费分享给大家。 下载过的还望能留个名

2014-12-10

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

TA关注的人

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