自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

转载 如何使用Appverifier ?

AppVerifier 特别用于检测和帮助调试内存损坏、危险的安全漏洞以及受限的用户帐户特权问题。AppVerifier 有助于创建可靠且安全的应用程序,方法是监视应用程序与Windows操作系统的交互,并配置应用程序使用的对象、注册表、文件系统和 Win32 API(包括堆、句柄和锁)。AppV...

2013-01-22 17:42:50

阅读数 2642

评论数 0

转载 关于VC静态库的合并

可能由于实际工作的需要,有时需要将多个lib合并成一个lib, 以方便使用。 有两种方式来实现这个合并工作: 1、使用VSIDE: 1.1 建立一个最终的lib工程(当然也可以用最上层的工程),在Project\Property\Configuration Properties\Librar...

2013-01-22 17:37:12

阅读数 3880

评论数 0

转载 结构体对齐问题.

在结构中,编译器为结构的每个成员按其自然对界(alignment)条件分配空间;各个成员按照它们被声明的顺序在内存中顺序存储,第一个成员的地址和整个结构的地址相同。在缺省情况下,C编译器为每一个变量或是数据单元按其自然对界条件分配空间。    例如,下面的结构各成员空间分配情况。   stru...

2012-08-16 11:27:08

阅读数 15047

评论数 4

转载 解读IEEE标准754:浮点数表示

一、背景   在IEEE标准754之前,业界并没有一个统一的浮点数标准,相反,很多计算机制造商都设计自己的浮点数规则,以及运算细节。那时,实现的速度和简易性比数字的精确性更受重视。   直到1985年Intel打算为其的8086微处理器引进一种浮点数协处理器的时候,聪明地意识到,作为设计芯片者...

2012-04-16 17:34:57

阅读数 1016

评论数 0

原创 Flex和Bison的C++可重进入—多线程解决方案

目前我们部门用到flex & bison解析器的地方很多,除了编译器 & 汇编器外,还有其他蛮多地方均用到flex & bison解析器,但是没有一个是线程安全的,也就是说在多线程环境下是不能够正常work,因此研究线程安全性就很有必要性。 使用flex(lex)和bis...

2012-04-09 10:39:13

阅读数 4988

评论数 1

原创 Try Me Mode & Normal Mode

目前市场上卖的玩具的类型很多,顾客去商场要购买玩具的时候,顾客可能会看到有的玩具可以随便试玩,功能全部裸露出来,但是有的游戏全部包装起来不能让顾客随意玩,顾客只有买回去把包装卸掉才能玩,对应我们顾客来说比较偏向可以随意玩的玩具,毕竟玩下感觉自己喜欢才买,不喜欢就不买。因此玩具全部包装起来对顾客来说...

2012-03-02 18:19:04

阅读数 1365

评论数 0

原创 如何确定一个机器的字节顺序是大端还是小端

什么是大/小端呢?所谓大端就是指高位值在内存中放低位地址,所谓小端是指低位值在内存中放低位地址。比如0x11223344在大端机上是11223344,在小端机上是44332211,而一个机器是大端还是小端要看cpu类型以及运行在上面的操作系统。同一款cpu在不同的操作系统使用的大小端情况是不同的。...

2012-01-11 12:03:44

阅读数 9463

评论数 1

原创 在VC2008上Build SDCC Compiler

If you want to build SDCC on Visual Studio 2008, there're some prerequisites. 1. No empty space in the project path. 2. Install the GnuWin32 tools...

2011-12-30 12:22:57

阅读数 1354

评论数 0

原创 Yacc介绍与使用

概念 •什么是YACC? yacc(Yet Another Compiler Compiler),是Unix/Linux上一个用来生成编译器的编译器(编译器代码生成器). 使用巴克斯范式(BNF)定义语法,能处理上下文无关文法(context-free)。出现在每个产生式左边(lef...

2011-12-28 13:21:11

阅读数 35812

评论数 0

原创 Calling Convention

1.Background 在C语言中,假设我们有这样的一个函数: int function(int a,int b) 调用时只要用result = function(1,2)这样的方式就可以使用这个函数。但是,当高级语言被编译成计算机可以识别的机器码时,有一个问题就凸现出来:在CPU中,计算...

2011-12-28 12:32:32

阅读数 708

评论数 0

原创 #pragma init_seg使特定的全局变量优先于其他的全局变量先构造

我们知道在C++中的全局变量的构造总是优先于Main之前(应该说程序的执行体),那对于同一个文件,不同文件中定义的全局变量的构造函数是怎么执行的呢? 1)对于同一个文件来说: 全局变量的构造顺序按照全局变量的声明来构造。 如: C_C g_C; C_A g_A; C_B g_B...

2011-12-12 11:28:47

阅读数 2159

评论数 2

转载 闲谈字符串转换

计算机发明后,为了在计算机中表示字符,人们制定了一种编码,叫ASCII码。ASCII码由一个字节中的7位(bit)表示,范围是0x00 - 0x7F 共128个字符。他们以为这128个数字就足够表示abcd....ABCD....1234 这些字符了。        咳......说英语的人就是...

2011-12-09 17:38:21

阅读数 835

评论数 0

原创 在VC6.0/VC2008中高效地使用flex & bison

由于 目前的主要工作是IDE,而IDE中主要负责Compiler & Assembler部分,这两部分中都会用到flex & bison(Lex & Yacc),所以通常的做法是在相应工程目录(如:工程为SDCC Compiler)下建立一个parser的目录,然后里面存放...

2011-12-06 14:13:18

阅读数 1308

评论数 0

转载 在Visual C++2008中调用GCC/G++编译单文件

在VC2008中,如何编译单文件呢? 除了用cl.exe命令行方式外,能否在IDE中实现? 这里有一个技巧: 在VC2008中不能编译单个cpp文件,必须把它放在工程中。但是,我们可以通过调用外部工具实现编译单文件。下面以调用GCC/G++为例说明如何编译cpp文件。 首先下载Dev C+...

2011-12-06 13:52:08

阅读数 1189

评论数 2

转载 C++中RTTI的编码实现

摘要:   RTTI(Run-Time Type Identification)是面向对象程序设计中一种重要的技术。现行的C++标准对RTTI已经有了明确的支持。不过在某些情况下出于特殊的开发需要,我们需要自己编码来实现。本文介绍了一些关于RTTI的基础知识及其原理和实现。 RTTI需求:...

2011-12-06 12:27:13

阅读数 1118

评论数 0

转载 关于C++中RTTI的思考?

RTTI(运行时类型信息),是所有RAD开发工具的基础。 这段时间,因为需要在自己的软件中加入扩展的RTTI功能,于是专门对RTTI进行了研究,现在一些心得写下来。 RTTI是比较新的编程语言提供的能力,C、Fortran、Basic就没有,而现在几乎所有现代的、可视化的编程语言都提供了RTTI...

2011-12-06 10:55:48

阅读数 766

评论数 0

转载 为什么EXE不能超过4GB

//原文来自于:http://www.cnblogs.com/lixiong/archive/2010/07/13/1776284.html 为什么EXE不能超过4GB 前几天看到大家在讨论EXE装载的问题,很新奇。有的说PE装载受到进程空间的限制,有的说PE一定是整体装入,有的用ZIP自...

2011-12-05 18:40:13

阅读数 869

评论数 0

转载 如何在32位程序中突破地址空间限制使用超过4G的内存

众所周知,所有的32位应用程序都有4GB的进程地址空间,因为32位地址最多可以映射4GB的内存(对于虚拟地址空间概念不太熟悉的朋友建议去看一下《Windows核心编程》这本书)。对于Microsoft Windows操作系统,应用程序可以访问2GB的进程地址空间(32位Linux可以访问3GB地址...

2011-12-05 18:24:49

阅读数 5692

评论数 0

转载 构造函数中抛出的异常

构造函数中抛出的异常   1、标准C++中定义构造函数是一个对象构建自己,分配所需资源的地方,一旦构造函数执行完毕,则表明这个对象已经诞生了,有自己的行为和内部的运行状态,之后还有对象的消亡过程(析构函数的执行)。可谁能保证对象的构造过程一定能成功呢?说不定系统当前的某个资源不够,导致对象...

2011-12-03 09:10:30

阅读数 693

评论数 0

原创 关于“逻辑地址”、“线性地址”和“物理地址”

实模式下: 一个地址(即物理地址)由“段值:偏移”确定。“段值”为16位的cs、ds等段寄存器,“偏移”可由16位的寄存器或常数(符号标识)给出。物理地址的计算公式为:         物理地址(Physical Address ) = 段值(Segment)x 16 + 偏

2011-10-19 11:30:50

阅读数 985

评论数 0

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