自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Goncely的专栏

搜索-规划-推理

  • 博客(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

Game Engine Architecture 公开章节

Game Engine Architecture的公开章节,14.6,教你如何更新游戏对象。

2010-11-03

支持汉字的BCGCBPRO库BCGPEditCtrl源文件

基于BCGCBPRO库1030版本修改的BCGPEditCtrl,支持汉字显示和编辑,BCGCBPRO库可以在csdn中下载。目前仍然有几个已知的BUG没有修复:1、放大汉字字体后,光标的定位存在偏移;2、尾行的显示在特定情况下会出现虚行;3、仍然存在汉字显示不正确的个别情况。以后有机会会慢慢修复上述问题。

2010-06-11

基于FreeImage库的简易图像处理系统vc8源码

基于FreeImage库的简易图像处理系统,用于演示C++封装的KFreeImage类使用。 TODO: 1、原始尺寸图片在转换为RGB565格式后会出现色彩问题 2、转换为16位色彩模型后,对图片进行缩放会恢复为24位色彩模型 3、FreeImage的图片缩放算法较慢

2010-06-11

左上填充规则的光栅化演示程序(静态编译发行版)

为了便于理解坐上填充规则,特意做了一个演示程序,只要输入三角形顶点就可以看到渲染结果。我用她来测试我的软件光栅化器,帮了我很大忙,解决了一个困扰我近半个月的问题,希望能给大家带来帮助。如果有人想对该程序进行完善和扩充(有很多想到的实用功能没有实现),我很乐意提供源代码,只需要给我留言即可。

2010-05-13

一个用VC实现的透视投影演示程序

一个透视投影的演示程序,含源代码,VC6工程文件。可以读取3ds文件,用线框显示。具体实现细节可以参考我的Blog。

2010-03-19

BCGCBPRO 修正库文件

对BCGCBPRO1030的修正库文件,主要是对CBCGPEditCtrl控件进行了修改,实现了对汉字等Unicode字符的支持;实现了在只读模式下显示光标。原版的文件在选择汉字的时候会出现乱码情况,在只读模式下不显示光标。库文件用vs9编译,非静态库,包含DEBUG和RELEASE两个版本。

2009-12-28

zziplib库源代码

使用vc8.0调试好的zziplib,可编译通过。

2009-09-30

LL Analyzer

07年编的一个程序,用于分析LL(k)文法,界面不是很好,但还能用。我用它来分析C++语法,压缩包里有一个C++语法的范例。打开程序加载,并编译后,可以慢慢研究。希望对大家有帮助。

2008-11-02

MakeInfo

texinfo是GNU官方文档的标准格式,在windows下没找到打开texinfo文档的程序,所以在windows下重新编译了GNU中的MakeInfo程序。特此发布以帮助那些在windows下研究GNU文档的人。

2006-11-14

空空如也

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

TA关注的人

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