半冷半暖秋天

2009-09-28

2009/09/28 记事

Filed under: 不知所云 — sunu @ 23:03:44

一朋友今天向我发牢骚。

“想不到竟弄得如此窘迫,所有的钱仅够回家的路费了。我也不是很看重钱这东西,但本来就没啥自信,一旦变成穷光蛋就完全慌了神了。我也知道要成功就要有所付出,有所牺牲,要能吃苦,但那只能是我自己,不能让我的亲人也跟着为难吧,你说是不?”

“我就一笨蛋,挣死了算不傻,平庸之辈。我也想要发奋图强,天天都在努力,可是有时候会不知道该努力做些什么啊,努力做白日梦?也曾想过要改变现在的生活,可是改变哪有那么容易。我其实很理解以前那些动不动就喝农药自我了断的人,他(她)们就那么点觉悟,他们哪能想到只要换个环境人是照样可以活得滋润的,他们就是想不到,就钻牛角尖了。我其实从来都知道自己不是最差劲的,从老子垃圾的人多了去了,他们都混得好好的,为啥我就经常喘不过气来呢?”

“一般情况下,如果一个人明知有其它的希望却迟迟没有行动,大多是留恋以往的旧生活带来的好处。当然了,也有相当多的是出于无耐,比如责任、友情、道义,都不允许他们做太多的改变。你说我啊,好像两者都有。”

“我也就随便跟你说说,发泄发泄,不然心里堵得很,万一向家人或者上司发火就不太好了。你也帮我做个见证,我今天这衰样儿。万一以后更衰了,你好劝劝我,以前不就已经这样了么;万一要是稍稍发达了,你也好劝劝我,以前可是那衰样啊。”

他哪里知道,我也想发牢骚啊。

2009-09-25

“铁杵磨成针”故事里讲的牛人到底是谁?

Filed under: 不知所云 — sunu @ 19:56:47

小时候课本上讲的好像是李白,记得是篇带插图的课文。本以为是“金正日石子打卫星”之类的故事,但好像宋代就有人记载,看来也不是太不靠谱。
李白版:http://baike.baidu.com/view/66452.htm

宋·祝穆《方舆胜览·眉州·磨针溪》:“在象耳山下,世传李太白读书山中,未成弃去,过小溪,逢老媪方磨铁杵,问之,曰:‘欲做针’太白感其意,还卒业。”

mozhengjing2

还有个是道教的玄武大帝了。

真武帝版:http://www.mingzong.com/news.php?id=10999

相传真武是净乐国太子,十五岁入武当山修道。在深山老林中修了几十年大道未成,心灰意冷,决意弃道还俗,走到这里,遇到紫气元君化做老太婆用铁杵磨针点化他,使他悟出“铁杵磨成针,功到自然成”的道理,于是又返回深山修炼,终于得道升天。

mozhengjing1

故事嘛,安在谁身上都可以。如果是在以前,就算“毛主席石子打卫星”估计也不奇怪。

2009-09-21

记录低级错误并复习qsort

Filed under: C/C++ — sunu @ 15:35:53

OCR所得结果为一个数组(一串某结构体),现需要对OCR的结果(每个结构体)进行重新排序,安排文字在图像上的位置从上到下,从左到右排列。

大致问题就成了这样:

数组pArray, 有N个元素,每个元素结构为[int x, int y], 表示某个点的坐标.以左上角为坐标原点[0,0].

要求,对pArray进行排序,使用得pArray[0]~pArray[N-1]按照从上到下从左到右排列。

比如

pArray[0] = [10, 0]

pArray[1] = [ 0, 0]

pArray[2] = [25, 5]

pArray[3] = [15,12]

pArray[4] = [ 0, 9]

pArray[5] = [20, 0]

pArray[6] = [10,10]

则排序后应该是:

pArray[0] = [ 0, 0]

pArray[1] = [10, 0]

pArray[2] = [20, 0]

pArray[3] = [25, 5]

pArray[4] = [ 0, 9]

pArray[5] = [10,10]

pArray[6] = [15,12]

照理说是简单地调用qsort就能搞定的(其实也是),但我却郁闷了老半天,不旦结果莫名其妙,还发现调用qsort排序后数组中元素被修改了!

我是这样写的:

int compare1( const void *arg1, const void *arg2 );
int compare1( const void *arg1, const void *arg2 )
{
  docr_word *p1 = (docr_word *)arg1;
  docr_word *p2 = (docr_word *)arg2;
  if ( p1->pos.y > p2->pos.y )
  {
    return 1;
  }
  else if (p1->pos.y = p2->pos.y)
  {
    if ( p1->pos.x > p2->pos.x )
    {
      return 1;
    }
    else if (p1->pos.x = p2->pos.x)
    {
      return 0;
    }
    else
    {
      return -1;
    }

    return 0;
  }
  else
  {
    return -1;
  }
}
qsort(pResult->words, pResult->count, sizeof(pResult->words[0]) , compare1 );
该死的=号应该都换成==号。

	

Windows Driver Kit Version 7.0.0安装及VS2008配置

Filed under: C/C++ — sunu @ 11:25:13

微软的驱动开发工具原来叫DDK(Driver Develpment Kit),已经改名叫WDK(Windows Driver Kit)了,近段时间已经开放免费下载。

下载地址:http://www.microsoft.com/downloads/details.aspx?FamilyID=2105564e-1a9a-4bf4-8d74-ec5b52da3d00

周未因为想试下dokan(类似于linux平台下的fuse),发现早期的xp/2003的DDK都编译失败。修改代码明显不是明智之举,既然已经发布出来,作者肯定是编译过的,换最新的工具总可以吧。

WDK下载来是个600来MB的ISO,安装后可以用来开发windows 2003/xp/7/vista等平台的驱动程序。里面自带有msvcrt及编译、链接工具,不需要安装VS。如果想要借用vs的强大IDE,也是可以的。

1. 下载 DDKWizard

http://ddkwizard.assarbad.net/

下载页面上的这两个文件:ddkbuild_cmd.zip ddkwizard_setup.exe 前者解压到WDK安装根目录(比如D:\WINDDK\),后都默认安装。

2.  设置环境变量WLHBASE

我的电脑-》属性-》高级-》环境变量,添加环境变量WLHBASE,值为DDK的路径,比如D:\WINDDK\7600.16385.0

3.  VS2008新建驱动项目

这个时候其实已经可以建立并编译驱动程序了。VS2008->文件->新建项目 可以看到有个DDK Project,比如选择Driver。

接下来的DDKWizard界面中,选用Longhorn/Vista DDK,去除”Create PREfast Configuration”及下面出现什么”pre/fast”的选项。

点finishe,工程便生成好了,F7可直接编译。

网上有些教程说需要修改VS2008的引用文件、库文件等等路径,其实根本不需要,因为我们仅仅供用了VS的IDE,编译的时候并不使用C:\Program Files\Microsoft Visual Studio 9.0\VC 下的文件,而是使用WDK自带的一套文件。(D:\WINDDK\7600.16385.0)

2009-09-20

一些记录

Filed under: 文档及资源 — sunu @ 20:32:45

Powered by WordPress