编程随笔
soft_ice
这个作者很懒,什么都没留下…
展开
-
原来IntToHex是这么实现的。。。
看delphi自带的源码是如此:function IntToHex(Value: Integer; Digits: Integer): string;// FmtStr(Result, %.*x, [Digits, Value]);asm CMP EDX, 32 //为什么是edx呢?因为delphi函数的顺序是eax,edx,ecx,超过3个就push,原创 2005-08-31 09:46:00 · 5339 阅读 · 0 评论 -
NULLSoft 真是个好东西
第一次用nullsoft做安装包,大有相见恨晚的感觉,之前用过installshield,wise installer, install vise等工具,installshield功能倒是很强大,但是太庞大了,wise我用的最多,可是总觉得不爽。nullsoft很不错,基于脚本的系统,支持多语言,界面也漂亮。 下面一段是根据用户选择的多语言,写到配置文件里。 StrCmp $LANGU原创 2006-10-28 19:51:00 · 1551 阅读 · 0 评论 -
[ZZ]Java虚拟机类装载:原理、实现与应用
Java虚拟机类装载:原理、实现与应用 By jorren 发表于 2005-12-21 15:13:00一、引言 Java虚拟机(JVM)的类装载就是指将包含在类文件中的字节码装载到JVM中, 并使其成为JVM一部分的过程。JVM的类动态装载技术能够在运行时刻动态地加载或者替换系统的某些功能模块, 而不影响系统其他功能模块的正常运行。本文将分析J转载 2006-11-04 13:25:00 · 641 阅读 · 0 评论 -
正则表达式详细介绍
正则表达式的基本语法: 一个正则表达式,分为三个部分:分隔符,表达式和修饰符。 分隔符可以是除了特殊字符以外的任何字符(比如"/ !"等等),常用的分隔符是"/"。表达式由一些特殊字符(特殊字符详见下面)和非特殊的字符串组成,比如"[a-z0-9_-]+@[a-z0-9_-.]+"可以匹配一个简单的电子邮件字符串。修饰符是用来开启或者关闭某种功能/模式。下面就是一个完整的正则表达式的转载 2006-11-09 15:56:00 · 1599 阅读 · 0 评论 -
Unicode,UTF-8,GB2312编码的识别
在UCS编码中有一个叫做"ZERO WIDTH NO-BREAK SPACE"的字符,它的编码是FEFF。而FFFE在UCS中是不存在的字符,所以不应该出现在实际传输中。UCS规范建议我们在传输字节流前,先传输字符"ZERO WIDTH NO-BREAK SPACE"。这样如果接收者收到FEFF,就表明这个字节流是Big-Endian的;如果收到FFFE,就表明这个字节流是Little-Endia原创 2006-11-12 16:36:00 · 2256 阅读 · 1 评论 -
追MM与设计模式
追MM与设计模式 要学习的话建议你看一下《java与模式》这本书。创建型模式1、FACTORY—追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了。麦当劳和肯德基就是生产鸡翅的Factory 工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消转载 2006-11-13 11:23:00 · 1046 阅读 · 0 评论 -
使用工厂类模式构建的数据库访问层
一个项目用到驱动Access数据库,MySql数据库,定义一个IDBManager接口。然后分别定义了TAccessManager和TMySqlManager,分别实行该接口。然后定义一个TDBFactory来创建这个接口。为了做到通用,采用从配置文件中读取字符串,然后转换为类名,TDBFactory的CreateDBMgr方法,根据传递的参数创建不同的数据驱动。unit untDBFacto原创 2006-11-13 21:40:00 · 1385 阅读 · 0 评论 -
System.getProperty()参数大全
System.getProperty()参数大全 java.version Java Runtime Environment version转载 2006-07-21 19:07:00 · 2353 阅读 · 0 评论 -
发现一个小巧的建模工具Jude
现在的建模工具,rose、together等,一个比一个强悍,一个比一个吃内存,“每一个都能照亮半个宇宙”,昨天用together画usercase的时候,我酷睿2,2.0双核,2G内存的本本居然都跑的很吃力,着实让我诧异。实在终于发现java下面一个小巧的建模工具,体积真是小巧,只有2m左右,能画uml中的大部分图,也能import java和export java.效果很不错,不过遗憾的是i原创 2007-06-17 14:49:00 · 2083 阅读 · 1 评论 -
程序员的素养
1、“一切从名字开始”。无论是开发大的项目、写学习代码或打Patch,都要注意给项目、变量、函数起一个好的名字。2、“不要Copy第二次”,当一个常量要用到第二次的时候,就立刻给他做预定义。比如起一个常量名,或用一个变量赋值。3、“不以误小而为之”。“这点儿小错无所谓”的态度对自己百害无一利。4、“不以善小而不为”。 你有下面的情况吗?“修个小BUG没意思”,“随便起个名字无所谓”,“转载 2007-06-26 23:33:00 · 1175 阅读 · 1 评论 -
项目管理百宝箱
以下是我的项目管理中使用的工具:SVN:我把svn放在所有项目管理的首位,足以看出它的重要性,很难想象一个没有svn的项目会是什么样的,对于svn提交的频度,我基本上是控制在method级别,完成一个method以及对应的testcase,就应该提交,完成一次小的集成。Jira:jira作为bug跟踪,项目管理等在项目开发过程具有极其重要的意义,甚至可以代替msproject来分配任务,跟踪进度,原创 2007-06-17 16:30:00 · 1173 阅读 · 0 评论 -
ubuntu下VMTools的安装
Mware Tools for Linux Guests Power on the virtual machine. After the guest operating system has started, prepare your virtual machine to install VMware Tools. Choose File > Install VMware Tools转载 2007-10-04 15:40:00 · 2787 阅读 · 0 评论 -
spring与junit
昨天的项目增加了Hibernate以及annotation支持,今天继续加上spring支持,首先使用myeclipse增加spring capabilities,生成applicationcontext.xml文件,同时修改单元测试里的基类,继承自AbstractDependencyInjectionSpringContextTests。 这是一个依赖spring的测试类。生成后,需要实现原创 2008-01-23 23:30:00 · 882 阅读 · 1 评论 -
hibernate的Annotation配置
hibernate3.2后增加了annonation,极大方便了hibernate的配置。基本上实现了零配置。不过在使用annonation的时候,要有几点需要注意的。1. 构建sessionFactory的时候,不能使用 Configuration,而应该使用AnnotationConfiguration,也就是使用sessionFactory = new AnnotationConfigu原创 2008-01-23 00:47:00 · 949 阅读 · 0 评论 -
GetTickCount引起的一个诡异bug
话说有日公司一台服务器上运行的系统的一个功能突然不work了,而同样的程序在别的服务器都非常正常,无论如何重启这个程序都不管用。在本地调试,这个方法一点问题都没有,代码也看不出有任何问题,没办法,加了很多log在代码里,到服务器上去跑。 这个功能大致是这样,进行一项比较耗时的计算,为了提高性能,将计算结果缓存住,如果请求时间在5s内,直接返回,否则重新计算。原创 2009-01-12 22:43:00 · 4584 阅读 · 1 评论 -
发现一款强大的自动采集软件myspider
这几天试用了一下哥们的一个自动采集软件myspider,发现很好用,功能非常强大,具体介绍如下: MySpider介绍 信息采集是利用计算机软件技术,针对定制的目标数据源,实时进行信息采集、抽取、处理,从而为各种信息服务系统提供数据输入的整个过程。 MySpider自动采集系统是一款功能强大,使用方便的信息采集与监控软件。可以实现对各种不同类型的网站进行信息的采集整原创 2009-02-12 09:46:00 · 3172 阅读 · 0 评论 -
Windbg 用法
转帖自:http://www.cnblogs.com/xzp/articles/1171348.html如何手工抓取dump文件在生产环境下进行故障诊断时,为了不终止正在运行的服务或应用程序,有两种方式可以对正在运行的服务或应用程序的进程进行分析和调试。首先一种比较直观简洁的方式就是用WinDbg等调试器直接attach到需要调试的进程,调试完毕之后再detach即可。但是这种方式有个缺点转载 2009-02-14 10:41:00 · 2127 阅读 · 0 评论 -
DevPartner8.2初探
第一次用Numega的工具,应该是在97年,那个时候使用他的soft ice来调试一些软件,DevPartner应该是他的重头产品了。他的前身是BoundsChecker,2年前用了他的6.5版本,如今再次使用,发现功能强大了很多。 DevPartner主要是代码错误分析、代码覆盖率分析、代码性能分析,代码错误分析能定位到具体的行数,包括内存检测、api调用错误等。主要是通过在代码里插入h原创 2009-02-18 10:57:00 · 1230 阅读 · 0 评论 -
ModelMaker8的注释功能
之前总苦恼与modelMaker与Qdocuments的不兼容。用 Qdocuments添加的注释总是被modelMaker刷新掉。后来才发现原来modelmaker支持Qdocuments的xml格式的注释功能。在方法上双击,然后再document页选择default template,这样做后,还需要去options里的project options里设置一下,设置好后,就可以用m原创 2006-09-19 09:09:00 · 1352 阅读 · 0 评论 -
jsp+mysql乱码问题的解决
jsp页面乱码的问题,很多文章都有说了,加上页面page标志,一个小测试程序里,使用mysql缺省的安装、新建数据库,插入的表后用link查看正常显示,但是在页面里却显示乱码。连接字符串使用了characterEncoding=gb2312,依然是乱码,怀疑是mysql数据库的问题。修改my.ini里default-character-set=gb2312。然后重新新建数据库,新建的时候选择g原创 2006-04-14 13:53:00 · 2486 阅读 · 3 评论 -
struts编译Action的路径问题
使用struts做个小例子,发现编译MyAction.jsp的时候总是出现编译错误,说找不到org.apache.struts.action类,我仔细检查了系统变量里的classpath,发现加入了struts.jar的路径,可是依然没法编译,最后我用javac -classpath struts.jar路径的方式解决了这个问题,但是依然不得其解。原创 2006-04-14 12:58:00 · 2321 阅读 · 2 评论 -
TraceDebug
功能简述:可以跟踪exe执行的序列,并记录到文件里。作用主要可以比较exe在不同环境中执行的差异处。从而可以得到差异点。思路:首先需要用DEBUG_PROCESS标志CreateProcess加载目标程序。然后在每一步下断点,同时得到eip的值,写入文件里(同时记录寄存器的值也可以)。 如何下断点呢?其实普通的中断是Int3,也就是在需要中断的地方插入Int3,然后再WaitForDebugEve原创 2005-09-02 19:49:00 · 1199 阅读 · 0 评论 -
StrPas
strpas:将pchar转换为string字符串,delphi5开发人员指南上有对这个函数的说明:该函数是为了兼容而存在,在delphi5只需要直接赋值就可以。不过偶尔我还会使用这个函数,直到我看到了他的源码。。。StrPas的源码在SysUtils.pas单元里,找到这个函数:function StrPas(const Str: PChar): string;begin Result :=原创 2005-09-04 18:07:00 · 3667 阅读 · 0 评论 -
异常处理
开卷有益,这句话一点都不错,以前总以为自己对异常处理还是比较了解的,今天看了周爱民的《Delphi源代码分析》的错误和异常处理,对异常的处理又有了新的认识。这本书里很详细的讲述了系统和delphi里异常的处理。 每个例程的入口,常常能看到这样的代码:xor eax,eax //eax清零push ebp原创 2005-09-04 23:12:00 · 1115 阅读 · 2 评论 -
一道有趣的题目
今天在群里有人问了一个有趣的问题。#include #include using namespace std;// 只要有e诞生或死亡,就输出个东西来class e{public:e(void){ coute(const e& e1){ coute& operator=(const e& e1){ cout~e(void){ out};// 扔出一个异常void fun(void){原创 2005-09-05 22:01:00 · 858 阅读 · 0 评论 -
凌波微步
今天在图书馆借到一本书《凌波微步 软件开发警戒案例集》,看了几章,发现实在是好书啊,相见恨晚~~原创 2005-09-09 22:39:00 · 974 阅读 · 0 评论 -
终于搞定了MapX的专题地图
终于搞定了mapx的专题地图,唉,资料真少呀。好不容易测试成功。var ds: CMapXDataset; mBinlayer: CMapXBindLayer; i,j: integer; str: string;begin ADOConnection1.Connected := true; ADOQuery1.close; ADOQuery1.SQL.Text := selec原创 2005-09-15 17:12:00 · 2193 阅读 · 1 评论 -
Create为什么可以为虚函数?
今天一个好友在群里问:: 在VCL库里,大多数构造函数是virtual的,这是为啥: 按理,在调用构造函数之前,对象都还没有,: 当然也应该没有vtbl,那么这样virtual有什么意义呢?: 所以C++里的构造函数没有virtual的。: 难道Delphi里不是酱紫地?: 那么vtbl是在什么时候被初始化的?首先,为什么没有调用构造函数之前,调用virtual函数没有意义,而调用实函数就有意义呢原创 2005-09-16 12:09:00 · 1083 阅读 · 0 评论 -
使用Dispatch模式设计信息上报审批功能
在做一个教育系统的项目,遇到一个这样的需求,下级部门要向上级部门上报各种申请共有10种左右,在上级的界面里,需要列出所有下属部门未审批的申请,同时根据不同的信息,调出不同的处理界面来。具体上报的消息类型,将来可能扩充。如果采用一般的做法,那么,就是在点击某一条消息的时候,根据消息id,判断属于什么类型的消息,然后调用相对应的处理过程:If msgid=1 then // else if m原创 2005-10-26 09:50:00 · 1553 阅读 · 0 评论 -
使用Observer模式设计信息更新功能
在一个软件项目中,有一个这样的需求,软件首页列出待处理消息的个数,点击进入处理窗体,处理后,刷新首页的消息个数。从软件设计来说,消息处理类并不需要知道是哪里需要刷新,可以是首页,也可以是别的地方,或者同时多个地方。因此打算采用Observer模式。先设计出类图:TMsg是消息处理类,它通过LoadMsgs得到待处理消息,RegisteNewMsg方法注册观察者,UnregisterNewM原创 2005-10-26 09:52:00 · 931 阅读 · 0 评论 -
国家农业标准化示范区管理系统
这个项目是国家标准委委托安徽中心承建的一个项目,旨在管理全国所有的农业标准化示范区,每个省由每个省技术监督局申报材料,初审、第一年考核、第二年考核、验收等。国家标准委进行最终审批,并进行统计分析。并要求实现已地图的形式列出全国示范区分布情况。 根据需求省技术监督局平台采用asp开发,国家标准委采用客户端形式,因为标准委内部只能使用80端口,所以采用三层架构,使用Web原创 2005-10-27 21:34:00 · 3010 阅读 · 0 评论 -
使用函数指针的问题
procedure TForm1.Button1Click(Sender: TObject);var a, b, c: Integer; xxx: procedure; procedure AddAToC; begin Inc(c, a); ShowMessage(AddAToC: Inc(c, a) = + IntToStr(c)); end; procedure原创 2005-10-28 14:50:00 · 1253 阅读 · 1 评论 -
线程与内核对象的同步
今晚拜读了《windows核心编程》的第九章:线程与内核对象的同步。其中一段话,让我感慨不已。实际上,这是我最初的做法。但是这是个大错误。。。。。 注意x 8 6处理器能够悄悄地处理未对齐的数据引用。因此当应用程序在x86 CPU上运行时,将F I L E T I M E的地址传递给S e t Wa i t a b l r Ti m e r总是可行的。但是,其他处理器,如A l原创 2005-11-02 23:52:00 · 1172 阅读 · 0 评论 -
News:Danny Thrope Left
Borland Chief Scientist,Delphi Compiler Core,Genius Programmer,Delphis Architect Danny Thrope Left Borland and Went to Google.He will work on firefox in Google.Such a bad news :(But I still believe t原创 2005-12-07 14:02:00 · 1677 阅读 · 0 评论 -
我的中国诗词程序
前几日下载了一个中国诗词的软件,界面太不友好,而且难以使用,并且还要注册$%$%^@&&*# ,所以干脆自己写一个, 软件部分乏善可陈,delphi做的,界面用了vclskin,我的目的是尽量做得简单方便,好用就行。 喜欢中国诗词的朋友可以去这里下载,http://bohe.whedu.net/software/Poems.rar原创 2005-12-09 17:32:00 · 1919 阅读 · 0 评论 -
我的第一个j2me程序
买了个moto E680i智能手机,linux系统,支持java。于是打算写个程序玩玩。用的是eclipse me,jdk1.42,很简单的一个程序。代码很简单,经典的helloworld程序。import javax.microedition.midlet.MIDlet;import javax.microedition.midlet.MIDletStateChangeException;i原创 2006-04-10 10:08:00 · 1253 阅读 · 2 评论 -
一个jsp+tomcat+struts项目的配置
首先配置好classpath,然后是app path,我是直接复制到webapps目录下。在ie里输入http://localhost:8080/myapp/ 却出现NullPointerException,看错误应该是零指针错误,很可能是对象初始化出错,跟踪bean的代码,发现连接数据库的类的构造函数里有连接数据库,原来这一步出错了。配置好数据库连接,搞定。原创 2006-04-13 19:43:00 · 1716 阅读 · 0 评论