<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/iytbihc</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; iytbihc]]></copyright><item><title><![CDATA[picture]]></title><link>https://blog.youkuaiyun.com/iytbihc/article/details/81092519</link><guid>https://blog.youkuaiyun.com/iytbihc/article/details/81092519</guid><author>iytbihc</author><pubDate>Wed, 18 Jul 2018 09:36:19 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[字符编码的奥秘]]></title><link>https://blog.youkuaiyun.com/iytbihc/article/details/40076073</link><guid>https://blog.youkuaiyun.com/iytbihc/article/details/40076073</guid><author>iytbihc</author><pubDate>Tue, 14 Oct 2014 14:05:25 +0800</pubDate><description><![CDATA[字符编码
你是否认为“ASCII码 = 一个字符就是8比特”？你是否认为一个字节就是一个字符,一个字符就是8比特？你是否还认为你是否还认为UTF-8就是用8比特表示一个字符？如果真的是这样认为认真读完这篇文章吧！
为什么要有编码？
首先大家需要明确的是在计算机里所有的数据都是字节的形式存储，处理的。我们需要这些字节来表示计算机里的信息。但是这些字节本身又是没有任何意义的，所以我们需要对这些字]]></description><category></category></item><item><title><![CDATA[浅谈neg+sbb指令]]></title><link>https://blog.youkuaiyun.com/iytbihc/article/details/39248795</link><guid>https://blog.youkuaiyun.com/iytbihc/article/details/39248795</guid><author>iytbihc</author><pubDate>Sat, 13 Sep 2014 08:19:30 +0800</pubDate><description><![CDATA[neg指令：intel指令手册是这样说明的
IF DEST = 0
THEN CF 
ELSE CF 
就是说，当操作数为0时，cf标志为0，否则cf被置1.（这让我们联想到c语言中很多函数返回0和非0，然后用if来判断0或者非0走不同的分支）
neg指令的作用就是对操作数求反，neg eax :用伪代码表示就是 eax = -eax；
那么neg指令的初级作用就是对一个数来求绝对值]]></description><category></category></item><item><title><![CDATA[sleep与 wait区别主要是对cpu的占用]]></title><link>https://blog.youkuaiyun.com/iytbihc/article/details/37594767</link><guid>https://blog.youkuaiyun.com/iytbihc/article/details/37594767</guid><author>iytbihc</author><pubDate>Wed, 09 Jul 2014 11:20:57 +0800</pubDate><description><![CDATA[sleep是线程被调用时，占着cpu去睡觉，其他线程不能占用cpu，os认为该线程正在工作，不会让出系统资源，wait是进入等待池等待，让出系统资源，其他线程可以占用cpu，一般wait不会加时间限制，因为如果wait的线程运行资源不够，再出来也没用，要等待其他线程调用notifyall方法唤醒等待池中的所有线程，才会在进入就绪序列等待os分配系统资源， 
sleep是静态方法，是谁掉的谁去睡觉，]]></description><category></category></item><item><title><![CDATA[VCPROJ文件详解]]></title><link>https://blog.youkuaiyun.com/iytbihc/article/details/33731265</link><guid>https://blog.youkuaiyun.com/iytbihc/article/details/33731265</guid><author>iytbihc</author><pubDate>Mon, 23 Jun 2014 14:31:38 +0800</pubDate><description><![CDATA[vcproj是一个标准的xml文件。因此以下就以节点顺序描述。
   大概是分为以下几部分：
    工程属性
                       平台名称
                        工具文件，好像经常是没内容，不清楚
             编译和链接的配置信息，了解项目的编译链接一般在这
                     里
      ]]></description><category></category></item><item><title><![CDATA[windows 下使用makefile(二)---- 编译]]></title><link>https://blog.youkuaiyun.com/iytbihc/article/details/30234457</link><guid>https://blog.youkuaiyun.com/iytbihc/article/details/30234457</guid><author>iytbihc</author><pubDate>Thu, 12 Jun 2014 12:24:11 +0800</pubDate><description><![CDATA[1.Dos下运行VC++自带的Nmake，设置路径
==========================================

●C/C++ 编译器需要的环境变数设定古早以来，PC 上的 C 编译器，就需要两个环境变数：LIB：这个环境变数告诉编译器说，必要的 libraries 在哪里（哪个磁碟目录下）
INCLUDE：告诉编译器说，必要的 header files 在哪里（哪个磁碟]]></description><category></category></item><item><title><![CDATA[windows 下使用makefile(一)----部署]]></title><link>https://blog.youkuaiyun.com/iytbihc/article/details/30234405</link><guid>https://blog.youkuaiyun.com/iytbihc/article/details/30234405</guid><author>iytbihc</author><pubDate>Thu, 12 Jun 2014 12:23:15 +0800</pubDate><description><![CDATA[makefile在windows之外的系统中广泛使用，大多数程序员依赖于vs的IDE; 掌握使用makefile，对于自动化构建很有用

vs使用nmake.exe作为构建的工具，有别于linux的make

nmake.exe在vs的安装目录下，

vs2005的默认目录是：C:\Program Files\Microsoft Visual Studio 8\VC\bin 或者 C:]]></description><category></category></item><item><title><![CDATA[E​x​A​l​l​o​c​a​t​e​P​o​o​l​W​i​t​h​T​a​g]]></title><link>https://blog.youkuaiyun.com/iytbihc/article/details/28629873</link><guid>https://blog.youkuaiyun.com/iytbihc/article/details/28629873</guid><author>iytbihc</author><pubDate>Thu, 05 Jun 2014 15:23:10 +0800</pubDate><description><![CDATA[ExAllocatePoolWithTag 
调用ExAllocatePool是从内核模式堆中分配内存的标准方式。另一个函数ExAllocatePoolWithTag，与ExAllocatePool稍有不同，它提供了一个有用的额外特征。当使用ExAllocatePoolWithTag时，系统在你要求的内存外又额外地多分配了4个字节的标签。这个标签占用了开始的4个字节，位于返回指针所指向地址的前面]]></description><category></category></item><item><title><![CDATA[函数ZwQuerySystemInformation小结]]></title><link>https://blog.youkuaiyun.com/iytbihc/article/details/28613575</link><guid>https://blog.youkuaiyun.com/iytbihc/article/details/28613575</guid><author>iytbihc</author><pubDate>Thu, 05 Jun 2014 13:50:09 +0800</pubDate><description><![CDATA[该函数存在于NTDLL.DLL动态链接库中。NTDLL.DLL负责ring3与ring0之间的通信。当使用子系统方式进行系统调用的时候，ntdll.dll和SSDT会配合使用。关于SSDT技术以后会讲解到。
关于ZwQuerySystemInformation这个函数可以用来查询进程信息、内核信息、硬件信息（例如CPU数目）、句柄信息、时间信息等54个系统信息。
该函数的原型是

NTST]]></description><category></category></item><item><title><![CDATA[HeapAlloc,GlobalAlloc,LocalAlloc,VirtualAlloc,malloc,new的异同]]></title><link>https://blog.youkuaiyun.com/iytbihc/article/details/25773779</link><guid>https://blog.youkuaiyun.com/iytbihc/article/details/25773779</guid><author>iytbihc</author><pubDate>Wed, 14 May 2014 09:48:18 +0800</pubDate><description><![CDATA[1. 首先我们来看HeapAlloc：
MSDN上的解释为：HeapALloc是从堆上分配一块内存，且分配的内存是不可移动的（即如果没有连续的空间能满足分配的大小，程序不能将其他零散的 空间利用起来，从而导致分配失败），该分配方法是从一指定地址开始分配，而不像GloabalAlloc是从全局堆上分配，这个有可能是全局，也有可能是 局部。函数原型为：
LPVOID
HeapAlloc(]]></description><category></category></item><item><title><![CDATA[manifest 文件]]></title><link>https://blog.youkuaiyun.com/iytbihc/article/details/24139909</link><guid>https://blog.youkuaiyun.com/iytbihc/article/details/24139909</guid><author>iytbihc</author><pubDate>Sat, 19 Apr 2014 21:56:52 +0800</pubDate><description><![CDATA[什么是.manifest 文件
[现象]
对这个问题的研究是起源于这么一个现象：当你用VC++2005（或者其它.NET）写程序后，在自己的计算机上能毫无问题地运行，但是当把此exe文件拷贝到别人电脑上时，便不能运行了，大致的错误提示如下：应用程序配置不正确，请重新安装程序……或者是MSVCR80D.dll没有找到什么的（我记得不是很清楚，不过大致是这样的）
[分析]
看到这样的提示，当然]]></description><category></category></item><item><title><![CDATA[致命错误 RC1121: RC : fatal error RC1121 : I/O error reading file]]></title><link>https://blog.youkuaiyun.com/iytbihc/article/details/23703925</link><guid>https://blog.youkuaiyun.com/iytbihc/article/details/23703925</guid><author>iytbihc</author><pubDate>Mon, 14 Apr 2014 20:33:44 +0800</pubDate><description><![CDATA[这是关于多国语言转换的问题，原来的程序是英文版，在中文版里面就有这个问题。因为在Microsoft Windows 下，语言用代 码 页来识 别，不同 语言 用不同代码 页来表示， 如" 简体中文" 用代码页936 表示， 而"  美国英 语" 则 用代码页1252 表 示。其他语言不提了。

解决方法：把英文版本改为中文版本
用文本文档打开项目的资源文件（注意一定是文本文档哦！）
找到下]]></description><category></category></item><item><title><![CDATA[wireshark源代码分析]]></title><link>https://blog.youkuaiyun.com/iytbihc/article/details/22326239</link><guid>https://blog.youkuaiyun.com/iytbihc/article/details/22326239</guid><author>iytbihc</author><pubDate>Thu, 27 Mar 2014 22:20:13 +0800</pubDate><description><![CDATA[经过多次尝试，终于在windows上成功编译wireshark源代码，但用的不是下面的这个步骤，不过大同小异，我的是vs2005，所以用的：http://blog.youkuaiyun.com/alexander_vc/article/details/6198836
 的方法。

1.2.7版的wireshark的capture_if_details_dlg_win32.c对vs2005有bug，需要下]]></description><category></category></item><item><title><![CDATA[关于GUI线程和worker线程]]></title><link>https://blog.youkuaiyun.com/iytbihc/article/details/19903305</link><guid>https://blog.youkuaiyun.com/iytbihc/article/details/19903305</guid><author>iytbihc</author><pubDate>Tue, 25 Feb 2014 10:46:20 +0800</pubDate><description><![CDATA[1．   所谓的worker线程，是指完全不牵扯到图形用户界面（GUI），纯粹做运算的线程。
2．   微软的多线程模型：
Win32说明文件一再强调线程分为GUI线程和worker线程两种。GUI线程负责建造窗口以及处理主消息循环。Worker负责执行纯粹的运算工作，如重新计算或重新编页等，这些运算工作会导致主线程的消息队列失去反应。一般而言，GUI线程绝不会去做那些不能够马上完成的工作。]]></description><category></category></item><item><title><![CDATA[C++的模板编程]]></title><link>https://blog.youkuaiyun.com/iytbihc/article/details/17881087</link><guid>https://blog.youkuaiyun.com/iytbihc/article/details/17881087</guid><author>iytbihc</author><pubDate>Sun, 05 Jan 2014 11:36:38 +0800</pubDate><description><![CDATA[当我们越来越多的使用C++的特性, 将越来越多的问题和事物抽象成对象时， 我们不难发现：很多对象都具有共性。 比如 数值可以增加、减少；字符串也可以增加减少。 它们的动作是相似的， 只是对象的类型不同而已。

C++ 提供了“模板”这一特性， 可以将“类型” 参数化， 使得编写的代码更具有通用性。 因此大家都称模板编程为 “通用编程”或 “泛型编程”。

一般而言， 模板分为 函数模板 和]]></description><category></category></item><item><title><![CDATA[CONST]]></title><link>https://blog.youkuaiyun.com/iytbihc/article/details/17734863</link><guid>https://blog.youkuaiyun.com/iytbihc/article/details/17734863</guid><author>iytbihc</author><pubDate>Wed, 01 Jan 2014 15:50:55 +0800</pubDate><description><![CDATA[1什么是const?

　　常类型是指使用类型修饰符const说明的类型，常类型的变量或对象的值是不能被更新的。（当然，我们可以偷梁换柱进行更新：）
2为什么引入const？

　　const 推出的初始目的，正是为了取代预编译指令，消除它的缺点，同时继承它的优点。
3主要作用

　　（1）可以定义const常量，具有不可变性。 
　　例如：const int Max=100; ]]></description><category></category></item><item><title><![CDATA[static的作用]]></title><link>https://blog.youkuaiyun.com/iytbihc/article/details/17734495</link><guid>https://blog.youkuaiyun.com/iytbihc/article/details/17734495</guid><author>iytbihc</author><pubDate>Wed, 01 Jan 2014 15:03:02 +0800</pubDate><description><![CDATA[在C语言中，static的字面意思很容易把我们导入歧途，其实它的作用有三条。
（1）第一个作用：隐藏。
当我们同时编译多个文件时，所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话，我举例来说明。我们要同时编译两个源文件，一个是a.c，另一个是main.c。
下面是a.c的内容
#include增加这条语句
char a = ‘A‘; // global variable
vo]]></description><category></category></item><item><title><![CDATA[静态链接库与动态链接库]]></title><link>https://blog.youkuaiyun.com/iytbihc/article/details/17596721</link><guid>https://blog.youkuaiyun.com/iytbihc/article/details/17596721</guid><author>iytbihc</author><pubDate>Fri, 27 Dec 2013 00:02:40 +0800</pubDate><description><![CDATA[一、分别编译与链接（Linking）
大多数高级语言都支持分别编译，程序员可以显式地把程序划分为独立的模块或文件，然后每个独立部分分别编译。在编译之后，由链接器把这些独立的片段（称为编译单元）“粘接到一起”。（想想这样做有什么好处？）
在C/C++中，这些独立的编译单元包括obj文件（一般的源程序编译而成）、lib文件（静态链接的函数库）、dll文件（动态链接的函数库）等。
静态链接方式：在]]></description><category></category></item><item><title><![CDATA[为什么会出现LNK2005&#34;符号已定义&#34;的链接错误?]]></title><link>https://blog.youkuaiyun.com/iytbihc/article/details/17579669</link><guid>https://blog.youkuaiyun.com/iytbihc/article/details/17579669</guid><author>iytbihc</author><pubDate>Thu, 26 Dec 2013 11:39:32 +0800</pubDate><description><![CDATA[许多Visual C++的使用者都碰到过LNK2005:symbol already defined和LNK1169:one or more multiply defined symbols found这样的链接错误，而且通常是在使用第三方库时遇到的。对于这个问题，有的朋友可能不知其然，而有的朋友可能知其然却不知其所以然，那么本文就试图为大家彻底解开关于它的种种疑惑。
     大家都知道，从C]]></description><category></category></item><item><title><![CDATA[dll的概念 dll导出变量 函数 类 （转 )]]></title><link>https://blog.youkuaiyun.com/iytbihc/article/details/8867921</link><guid>https://blog.youkuaiyun.com/iytbihc/article/details/8867921</guid><author>iytbihc</author><pubDate>Mon, 29 Apr 2013 20:50:59 +0800</pubDate><description><![CDATA[1、 DLL的概念

DLL(Dynamic Linkable Library)，动态链接库，可以向程序提供一些函数、变量或类。这些可以直接拿来使用。


静态链接库与动态链接库的区别：
 

（1）静态链接库与动态链接库都是共享代码的方式。静态链接库把最后的指令都包含在最终生成的EXE文件中了；动态链接库不必被包含在最终EXE文件中，EXE文件执行时可以“动态”地引用和卸载这个与]]></description><category></category></item></channel></rss>