hubdog 的blog

VC2005 程序的部署问题

上周发布的SQLite Developer2.90,2.91有用户报告无法加载sqlite3.dll。2.90版的sqlite3.dll为了追加ICU的支持,是用VC2005重新编译的,我一开始估计是依赖的DLL不存在,用Dependency walker看了一下,发现VC2005编译后的DLL引入了对MSVCR80.dll的依赖,于是将这个DLL发给了用户,结果还是报告同样的错误。很是困惑不解,于是上google上搜索了一下,才知道从VC2003开始微软为了解决DLL 版本不一致的问题,引入了基于manifest的版本管理,也就是所谓的side by side assembly的依赖管理方式。这就使得DLL和程序的分发部署变得非常复杂,简单的在程序所在目录放置相关的DLL已经不行了。安装程序必须导入一个MSI的安装包。可是我只用了一个DLL,就需要分发额外的MSI安装程序,特别是我的安装程序是用Innosetup写的,导入MSI很麻烦。搜索了半天google,终于发现只要暴力编辑一下编译后的DLL的Manifest资源信息,去掉对于版本的指定就可以了。微软为了解决一个麻烦的问题,导入了一个更加麻烦的问题,真是shit。

 

参考了下面这篇文章

Sony的东西真烂

2005年的时候,公司给配了一个Sony的VAIO的本本,当时是60G的硬盘,这两年用着用着,地方就不太够了,C盘只剩下了1G,这两天跟公司申请了一块120G的硬盘,本来想换上去,结果把所有的螺丝拧下来,发现还是没法把主机壳拆下来,问了Sony的客服,说必须送到维修部门才能换硬盘,估计就是为了挣维护费,才把机器搞得这么难拆。妈的,以后再也不买sony的东西了,去年买的700万像素的Sony 数码相机也是巨烂,还不如我的400万像素的老佳能的效果好。

关于unicode,mbcs,utf8,charset,encoding等相关概念的说明 (转贴)

关于unicode,mbcs,utf8,charset,encoding等相关概念的说明

作者:小猪

发布Antlr For Delphi Target 3.1b2

这两天休息,抽出时间将Antlr For Delphi Target 从3.01同步更新到了3.1b2,已知大的问题是

感兴趣的可以下载例子程序(http://www.sharpplus.com/downloads/AntlrDelphiExamples.zip)

Google Trends

Google Trends最近开始支持查询指定一个网站访问者最经常访问的相关网站。

接口循环引用导致的内存泄漏

接口如果之间循环引用,引用计数总是无法归零,会产生内存泄漏,下面是一个简单的实例,基于GC的Java,不会产生类似的泄漏.
unit Unit2;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm2 = class(TForm)
btn1: TButton;
procedure btn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

IChild=interface
['{ADA8F7F3-AA7D-4D57-8FA8-0FA501458981}']
procedure SetParent(AParent:IInterface);
procedure SetChild(AChild:IInterface);
end;

TChild=class(TInterfacedObject, IChild)

Antlr 3.1beta1 终于发布了

Antlr3.1 beta1终于发布了,增加了一些新特性,但是我更感兴趣的Bug修正不是很多。接下来的一两个月里面有空会去研究一下。不过很可能没什么时间{#emotions_dlg.tongue_out}

今天为地震灾区的人捐了款

这一周除了忙着工作,就是在网上看地震灾区的消息,每天只睡了4个小时。

今天出差回到家,在香港红十字会的网站上为灾区捐了款,给香港红十字捐,主要是我不太信任国内的红十字会,以及美加的红十字会,

这一次是我一生中第二次捐款,第一次是捐给印尼海啸受难者,可是我当时内心是很不愿意的,因为印尼总是迫害华人。

这一次是发自内心的,希望我的钱能全部送达灾区人的手里,希望做善事能有好报,老天爷能给我个可爱的小宝宝。

常用的Drupal模块

今天升级Blog到了Drupal6,感觉还可以。下面是我使用的已升级到Drupal6的模块列表 Smiling

 

时间就是嵌入式程序开发的生命线

这周特别郁闷,由于上线的程序一个月内连续出现问题,本周7天,一天没休息,还搞了3个通宵调查现场出现的bug。 这周的几个Bug有一个共同的特点就是都是跟时间有关,其中一个是移植以前的一个硬件的Driver。这个Driver写得比较烂,其中一个TaskDelay的时间本来应该是Tick单位,结果被他们当成毫秒了,这次用的CPU是5ms一个 Tick。结果延时超出了硬件的范围。导致硬件驱动特别不稳定,动不动就通信异常。

同步内容