- 博客(21)
- 资源 (10)
- 收藏
- 关注
转载 字符编码的奥秘
字符编码你是否认为“ASCII码 = 一个字符就是8比特”?你是否认为一个字节就是一个字符,一个字符就是8比特?你是否还认为你是否还认为UTF-8就是用8比特表示一个字符?如果真的是这样认为认真读完这篇文章吧!为什么要有编码?首先大家需要明确的是在计算机里所有的数据都是字节的形式存储,处理的。我们需要这些字节来表示计算机里的信息。但是这些字节本身又是没有任何意义的,所以我们需要对这些字
2014-10-14 14:05:25
195
转载 浅谈neg+sbb指令
neg指令:intel指令手册是这样说明的IF DEST = 0THEN CF ELSE CF 就是说,当操作数为0时,cf标志为0,否则cf被置1.(这让我们联想到c语言中很多函数返回0和非0,然后用if来判断0或者非0走不同的分支)neg指令的作用就是对操作数求反,neg eax :用伪代码表示就是 eax = -eax;那么neg指令的初级作用就是对一个数来求绝对值
2014-09-13 08:19:30
1528
转载 sleep与 wait区别主要是对cpu的占用
sleep是线程被调用时,占着cpu去睡觉,其他线程不能占用cpu,os认为该线程正在工作,不会让出系统资源,wait是进入等待池等待,让出系统资源,其他线程可以占用cpu,一般wait不会加时间限制,因为如果wait的线程运行资源不够,再出来也没用,要等待其他线程调用notifyall方法唤醒等待池中的所有线程,才会在进入就绪序列等待os分配系统资源, sleep是静态方法,是谁掉的谁去睡觉,
2014-07-09 11:20:57
4481
10
转载 VCPROJ文件详解
vcproj是一个标准的xml文件。因此以下就以节点顺序描述。 大概是分为以下几部分: 工程属性 平台名称 工具文件,好像经常是没内容,不清楚 编译和链接的配置信息,了解项目的编译链接一般在这 里
2014-06-23 14:31:38
264
转载 windows 下使用makefile(二)---- 编译
1.Dos下运行VC++自带的Nmake,设置路径==========================================●C/C++ 编译器需要的环境变数设定古早以来,PC 上的 C 编译器,就需要两个环境变数:LIB:这个环境变数告诉编译器说,必要的 libraries 在哪里(哪个磁碟目录下)INCLUDE:告诉编译器说,必要的 header files 在哪里(哪个磁碟
2014-06-12 12:24:11
234
转载 windows 下使用makefile(一)----部署
makefile在windows之外的系统中广泛使用,大多数程序员依赖于vs的IDE; 掌握使用makefile,对于自动化构建很有用vs使用nmake.exe作为构建的工具,有别于linux的makenmake.exe在vs的安装目录下,vs2005的默认目录是:C:\Program Files\Microsoft Visual Studio 8\VC\bin 或者 C:
2014-06-12 12:23:15
185
转载 ExAllocatePoolWithTag
ExAllocatePoolWithTag 调用ExAllocatePool是从内核模式堆中分配内存的标准方式。另一个函数ExAllocatePoolWithTag,与ExAllocatePool稍有不同,它提供了一个有用的额外特征。当使用ExAllocatePoolWithTag时,系统在你要求的内存外又额外地多分配了4个字节的标签。这个标签占用了开始的4个字节,位于返回指针所指向地址的前面
2014-06-05 15:23:10
368
转载 函数ZwQuerySystemInformation小结
该函数存在于NTDLL.DLL动态链接库中。NTDLL.DLL负责ring3与ring0之间的通信。当使用子系统方式进行系统调用的时候,ntdll.dll和SSDT会配合使用。关于SSDT技术以后会讲解到。关于ZwQuerySystemInformation这个函数可以用来查询进程信息、内核信息、硬件信息(例如CPU数目)、句柄信息、时间信息等54个系统信息。该函数的原型是NTST
2014-06-05 13:50:09
380
转载 HeapAlloc,GlobalAlloc,LocalAlloc,VirtualAlloc,malloc,new的异同
1. 首先我们来看HeapAlloc:MSDN上的解释为:HeapALloc是从堆上分配一块内存,且分配的内存是不可移动的(即如果没有连续的空间能满足分配的大小,程序不能将其他零散的 空间利用起来,从而导致分配失败),该分配方法是从一指定地址开始分配,而不像GloabalAlloc是从全局堆上分配,这个有可能是全局,也有可能是 局部。函数原型为:LPVOIDHeapAlloc(
2014-05-14 09:48:18
162
转载 manifest 文件
什么是.manifest 文件[现象]对这个问题的研究是起源于这么一个现象:当你用VC++2005(或者其它.NET)写程序后,在自己的计算机上能毫无问题地运行,但是当把此exe文件拷贝到别人电脑上时,便不能运行了,大致的错误提示如下:应用程序配置不正确,请重新安装程序……或者是MSVCR80D.dll没有找到什么的(我记得不是很清楚,不过大致是这样的)[分析]看到这样的提示,当然
2014-04-19 21:56:52
277
转载 致命错误 RC1121: RC : fatal error RC1121 : I/O error reading file
这是关于多国语言转换的问题,原来的程序是英文版,在中文版里面就有这个问题。因为在Microsoft Windows 下,语言用代 码 页来识 别,不同 语言 用不同代码 页来表示, 如" 简体中文" 用代码页936 表示, 而" 美国英 语" 则 用代码页1252 表 示。其他语言不提了。解决方法:把英文版本改为中文版本用文本文档打开项目的资源文件(注意一定是文本文档哦!)找到下
2014-04-14 20:33:44
262
转载 wireshark源代码分析
经过多次尝试,终于在windows上成功编译wireshark源代码,但用的不是下面的这个步骤,不过大同小异,我的是vs2005,所以用的:http://blog.csdn.net/alexander_vc/article/details/6198836 的方法。1.2.7版的wireshark的capture_if_details_dlg_win32.c对vs2005有bug,需要下
2014-03-27 22:20:13
188
转载 关于GUI线程和worker线程
1. 所谓的worker线程,是指完全不牵扯到图形用户界面(GUI),纯粹做运算的线程。2. 微软的多线程模型:Win32说明文件一再强调线程分为GUI线程和worker线程两种。GUI线程负责建造窗口以及处理主消息循环。Worker负责执行纯粹的运算工作,如重新计算或重新编页等,这些运算工作会导致主线程的消息队列失去反应。一般而言,GUI线程绝不会去做那些不能够马上完成的工作。
2014-02-25 10:46:20
291
转载 C++的模板编程
当我们越来越多的使用C++的特性, 将越来越多的问题和事物抽象成对象时, 我们不难发现:很多对象都具有共性。 比如 数值可以增加、减少;字符串也可以增加减少。 它们的动作是相似的, 只是对象的类型不同而已。C++ 提供了“模板”这一特性, 可以将“类型” 参数化, 使得编写的代码更具有通用性。 因此大家都称模板编程为 “通用编程”或 “泛型编程”。一般而言, 模板分为 函数模板 和
2014-01-05 11:36:38
196
转载 CONST
1什么是const? 常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。(当然,我们可以偷梁换柱进行更新:)2为什么引入const? const 推出的初始目的,正是为了取代预编译指令,消除它的缺点,同时继承它的优点。3主要作用 (1)可以定义const常量,具有不可变性。 例如:const int Max=100;
2014-01-01 15:50:55
147
转载 static的作用
在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。(1)第一个作用:隐藏。当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c。下面是a.c的内容#include增加这条语句char a = ‘A‘; // global variablevo
2014-01-01 15:03:02
176
转载 静态链接库与动态链接库
一、分别编译与链接(Linking)大多数高级语言都支持分别编译,程序员可以显式地把程序划分为独立的模块或文件,然后每个独立部分分别编译。在编译之后,由链接器把这些独立的片段(称为编译单元)“粘接到一起”。(想想这样做有什么好处?)在C/C++中,这些独立的编译单元包括obj文件(一般的源程序编译而成)、lib文件(静态链接的函数库)、dll文件(动态链接的函数库)等。静态链接方式:在
2013-12-27 00:02:40
178
转载 为什么会出现LNK2005"符号已定义"的链接错误?
许多Visual C++的使用者都碰到过LNK2005:symbol already defined和LNK1169:one or more multiply defined symbols found这样的链接错误,而且通常是在使用第三方库时遇到的。对于这个问题,有的朋友可能不知其然,而有的朋友可能知其然却不知其所以然,那么本文就试图为大家彻底解开关于它的种种疑惑。 大家都知道,从C
2013-12-26 11:39:32
172
转载 dll的概念 dll导出变量 函数 类 (转 )
1、 DLL的概念DLL(Dynamic Linkable Library),动态链接库,可以向程序提供一些函数、变量或类。这些可以直接拿来使用。静态链接库与动态链接库的区别: (1)静态链接库与动态链接库都是共享代码的方式。静态链接库把最后的指令都包含在最终生成的EXE文件中了;动态链接库不必被包含在最终EXE文件中,EXE文件执行时可以“动态”地引用和卸载这个与
2013-04-29 20:50:59
250
原创 学习心得小结
最近在学习程序时,有一点小觉悟.我感到,程序员的工作方式就是去创造世界.计算机是虚似世界的逻辑载体,我们所做的任何事情,都是和这个世界打交道.画界面,玩算法等都是用一种符号语言来沟通.所以,学程序之前,我们不妨做以下几点思考:1,我要做什么 很多时候,我们得到一份材料,或得知某一个很厉害的技术,就一股脑的冲进去,想象着如何如何.可学起来,就发现问题很多.这是出发点错了.我认为学一门技术之前,先
2008-02-12 19:24:00
343
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人