- 博客(9)
- 资源 (9)
- 收藏
- 关注
原创 从编译器的角度看C代码
1、总论任何一个用C写的项目都是由若干文件构成,通常这些文件分为两大类:头文件和实现文件。头文件的后缀为.h,实现文件的后缀为.c。当然,也有一些文件是其他后缀,但这些文件通常也担当着头文件的角色(项目文件、配置文件及其它数据文件除外)。编译器的输入通常是实现文件,每一个实现文件对编译器来说是一个翻译单元,编译器将其翻译为目标代码,通常是一个obj文件。最后由链接器将所有的obj文件连成一个完
2006-03-24 17:07:00 3199
原创 Visual Parse++的破解经历
今天down了一个Visual Parse++来研究,可没想到连测试版也需要注册码。按照提示发了封索取注册码的邮件,半天不见回应,就干脆自己动手破解。使用OllyDbg加载SSVParse.exe文件,运行一下,还好文件没有加壳,一切正常。破解过程最重要的就是找到对注册码进行操作的代码,方法有很多,但不外乎是设置断点。找了半天没找到SSVParse.exe对GetWindowText的调用,只
2006-03-23 17:04:00 3150 11
原创 消除左递归文法
无法根据左递归文法编写出递归下降分析器,因而把左递归文法等价变换为非左递归文法至关重要,以下是变换的算法:1、消除直接左递归原文法: E --> E a1 | E a2 | ... | E an | b1 | b2 | ... | bn消除后: E --> b1 E | b2 E | ... | bn E E--> a1 E | a2 E | ..
2006-03-17 17:37:00 10131 1
原创 C语言中typedef用法详解
在C语言中,经常有如下的用法:typedef struct tag{ ...} MyType, *MyPtr;一旦通过如上定以后,就可以用MyType来定义struct tag结构了。以前我使用typedef的时候,是按照其字面意思理解的,所以进入了一个误区。比如说我想定义MyInt为int类型,我用的代码如下:typedef MyInt int;我把上述代码理解为:定
2006-03-16 16:48:00 12243
原创 vc中new和delete操作符的重载
在C++中重载new和delete操作符可以给程序带来更灵活的存储控制,对于游戏设计等对效率要求较高的应用而言是必不可少的。一般的C++书籍中也会介绍它们的应用和实现,然而在VC中实现却有几个必须注意的地方,否则编译会出现问题。1. 实现首先,vc在每个自动生成的cpp文件中都会加入如下代码:#ifdef _DEBUG#undef THIS_FILEstatic char THIS_F
2006-03-15 09:56:00 4552
原创 使用fopen时应注意的问题
以前在windows下总喜欢使用CFile类来操作文件,最近改用fopen系列函数,却没想到一个不经意的问题让我调试了一整天。打开文件使用的代码如下:FILE* fh = fopen("c:/filename", "r");缺省情况下(当然可以进行设置),文件是以文本模式打开的,因为我们没有使用b标记。这个时候,如果文件数据中含有0x1a就有麻烦了。每当读到0x1a的时候,文件的位置会跳到
2006-03-10 17:15:00 3217
原创 范式哈夫曼编码的快速解码技术
1 引言对前缀编码进行解码时,最重要的问题是如何快速的确定码字的长度。范式哈夫曼编码具有数字序列属性,因而能通过如下算法确定码字的长度:int len = 1; int code = bs.ReadBit(); while(code >= first[len]) { code code |= (bs.ReadBit()); // append next input bit to
2006-03-09 14:14:00 8216 2
原创 范式哈夫曼编码(Canonical Huffman Code)
1 概念介绍哈夫曼编码是一种最优的前缀编码技术,然而其存在的不足却制约了它的直接应用。首先,其解码时间为O(lavg), 其中lavg为码字的平均长度;其次,更为最重要的是,解码器需要知道哈夫曼编码树的结构,因而编码器必须为解码器保存或传输哈夫曼编码树。对于小量数据的压缩而言,这是很大的开销。因而,应用哈夫曼编码的关键是如何降低哈夫曼编码树的存储空间。Faller[1973]提出的自适应哈夫曼
2006-03-06 11:02:00 14622 15
原创 vc实现对远程SQL Server数据库的访问
1、远程数据库设远程数据库的ip地址为192.168.0.1,其中testdb数据库中有student表,student表包含两列:name和age。name为char类型,长度为10;age为int类型,长度为4。2、源代码 HENV hEnv = NULL; // Env Handle from SQLAllocEnv() HDBC hDBC = NULL; // Conn
2006-03-01 13:52:00 4166
支持汉字的BCGCBPRO库BCGPEditCtrl源文件
2010-06-11
基于FreeImage库的简易图像处理系统vc8源码
2010-06-11
左上填充规则的光栅化演示程序(静态编译发行版)
2010-05-13
BCGCBPRO 修正库文件
2009-12-28
LL Analyzer
2008-11-02
MakeInfo
2006-11-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人