| Профиль пользователя zurong07152ФотографииБлогСписки | Справка |
|
июля 16 周末 连续3周的加班,来自华为的pm大概也心疼我们了吧,于是,本周休假~~
每天的早起大概让老婆大人疲惫不已,午后到现在,原先嚷嚷着要去逛街的她,还在熟睡中。听着她轻轻呼吸的声音,自己也跟着轻轻一笑,心理默念,我的小猪。
本无睡意的我,就一个人看完了网上热炒的《疯狂的石头》,挺逗的,没想到有些绕口的重庆方言说起粗话来也是小有韵味。呵呵,不知道yj说起来会怎么样。下次回南京的时候问问。
看到zz的一个关于为中华崛起而读书的文章,想起了以前在浦口和zz扯淡的日子,在清楚地认识到自己不是做学问的料之前,有次还和老婆大人挺严肃的说,“老婆,我想读研,我想能作些推动人类进步的学问”,哪怕至今,我还是异常的钦佩那些肯踏踏实实做学问的人,比如小康,康弟要加油!
不知道是不是最近作的事情让我比较郁闷的缘故,竟攒了点脾气。那天一个不是很认真,也不是很礼貌的实习生,居然让我大为光火,实在少见。。。所幸,最后没有把邮件抄送小孩的老大。想起了在前辈师兄chengfa的blog上看到一句话,“严于律己,宽于待人”。是要好好学习一下。
最后和大家汇报一下偶的近况,工作还算顺利,在我家娘子的照顾之下,体重已经彪至72.5kg,中年男人之大肚腩征兆已经提前出现,小是恐慌,遂苦练跳绳,坚持7日,弃之。
我家娘子也已学成毕业,顺利入职,身居部门要职,让我小是钦佩。老婆大人和我正在迈向社会主义的康庄大道上大步前进~~
июня 16 温水的青蛙 今天与一同事兼好友讨论现状,我忽然发现"温水的青蛙"和"丑媳妇熬成婆"这两个说法其实是在说一件事.鸿鹄之志者时常奋身一跃浮出水面,小福则安者也落得一身自在。可是,世界上更多的是,对现状不满,却没有能力解决的人。
来到深圳之后,如果改善自己的经济状况几乎成为每天我都会思考的一个问题。努力工作,搞点小玩意,创业,等等。那天,我和zz说,现在互联网环境这么好,我们不搞点东西,眼睁睁的看着这个时代过去,若干年后,我们肯定会后悔不已。zz问,“你想到路子了么?”。我一时语塞。zz又说,“你不去想当然不会有路子”,顿时羞愧不已。。。
已经选择了勇敢的去面对生活的重担的时候,还要让你身边的人,相信和感受到你的勇气,给她力量,伴你前行! июня 11 hi ,world cup!两个月没有回来了,以至几乎忘记了这里
在等待3点阿根廷的比赛,为了避免自己睡着,我想到了可以写些什么,又听闻高人曾说,要让自己进步,就要把自己学到的,写出来
Unicode -国际化
很久以来我们一直习惯把字符串当作一系列以0结尾的单字节字符,strlen也是用0来判断字符的长度。
问题是,有些语言,一个字节根本就不够用,所以有了DBCS,双字节字符。可是这样就会非常恶心,
LPCTSTR = "hello,世界";
面对这样字符串,如果使用DBCS对程序员几乎是一个噩梦,因为有的字是一个字节,有的字是两个字节,所以我们需要诸个的比对。。判断该字节的范围。。在某个范围内,则说明它是双字节字符的首字节,需要继续读入下一个字节。
为了帮助操纵DBCS字符,win32提供的api有,charNext, charprev....等等。。总之,还是噩梦
为了解决这个恶心的事情,(要是世界上的人,一开始就说一种语言就没有这个问题了,哇哈哈)Apple和Xerox在1988年建立了一个标准,而后又由若干业界领袖建立了一个联盟,最终促成了Unicode的诞生。
Unicode提供的办法,就是用16位来表示每个字符, 世界上所有的书面语被它所覆盖,而且总数65000的近一半还没有被用到。
习惯了使用ansi的人会本能的问,为什么要用Unicode,有啥好处?事实上,这个问题,对于懒惰的我早早的出现了。
1。使语言间的数据交换更加容易
2。允许你发布一个支持所有语言的exe和dll
3。提高效率(这点比较吸引我,赫赫,因为我的程序暂时还不想照顾亚非拉的同胞们)
MS windows NT是第一个从底层支持Unicode的操作系统,所有的核心函数都使用Unicode,如果你调用了win32函数,而传给它ansi字符,那么它会先将ansi字符转为unicode字符,再转给系统。当然所有这些开销都是不可见的,不过它的确需要花点时间:)
typedef unsigned short wchar_t 这就是Unicode的字符数据类型。两个字节。
所有的ansi字符串函数都有它对应的Unicode函数,比如
char* strcat(char*, const char*);
wchar_t wcstrcat(wchar_t*, const wchar_t*);
所有的Unicode函数都以wcs开头。
标准C运行时对Unicode的支持 为了可以简单方便的在Unicode和ansi版本之间作切换,有人引入了一个宏_UNICODE和一个头文件TCHAR.H,_UNICODE表示是否使用Unicode版本,后面一个头文件对所有字符串函数在unicode和非unicode情况下的函数作了一个转换,大概的样子应该是这样:
#ifdef _UNICODE
#define wprintf _tprintf
#else
#define printf _tprintf
#endif
另外要定义一个Ansi/Unicode通用的字符串数组,应该使用TCHAR数据类型
#ifdef _UNICODE
typedef wchar_t TCHAR;
#else
typedef char TCHAR;
#endif
使用这个类型,你就可以这样创建字符串数组,字符串指针,
TCHAR strText[100];
TCHAR* szErr = "Error"; <----有问题
缺省的MS C++编译器把所有字符串当作Ansi字符,而不是Unicode字符,所以,如果没有定义_UNICODE,则上面有问题的那行编译器就会报错。
所以为了生成一个Unicode字符串,我们不得不这样写
TCHAR* szErr = L"Error";
这个大写的L就是告诉编译器,我要用Unicode字符串!!
可是在没有定义_UNICODE的时候,这句话也是编不过的,所以我们引入了另外一个宏
#ifdef _UNICODE
#define _TEXT(x) L##x
#else
#define _TEXT(x) x
#endif
使用这个宏,我们就可以正确改写前面那个字符串赋值,而不论它是否使用了UNICODE
TCHAR* szErr = _TEXT("Error");
而且TEXT也能被用于一个字符,例如:
szErr[0] == _TEXT("J")
Win32对Unicode的支持
win32的头文件里,定义了WCHAR,LPWSTR,LPCWSTR这三种UNICODE数据类型。
win32的头文件里,也定义了Ansi/Unicode的通用数据类型,LPTSTR和LPCTSTR。这些通用数据类型可以根据你编译的时候是否定义了UNICODE宏来指向Ansi和Unicode,注意,这个宏UNICODE和上面那个_UNICODE不一样,它没有下划线哦。所以,通常编译源代码的时候,需要加上这两个宏
那么在win32里,其实所有的函数也都有针对Unicode和Ansi的两个版本,例如
HWND WINAPI CreateWindowExW(DWORD dwStyle, LPCWSTR, ...);
HWND WINAPI CreateWindowExA(DWORD dwStyle, LPCWSTR, ...);
以W结尾的表示,使用的是Unicode版本,以A结尾,表示它接受Ansi版本。但是我们的代码中通常只有对CreateWindowEx的调用,这是因为在WinUser.h中,CreteWindowEx实际是一个这样的宏
#ifdef UNICODE
#define CreateWindowEx CreateWindowExW
#else
#define CreateWindowEx CreateWindowExA
#endif
哈哈,数学上的映射。。。
在windowNT下, MS的CreateWindowExA实际上只是简单的分配内存,把输入的Ansi字符转为Unicode,然后调用CreateWindowExW,当CreateWindowExW返回后,CreateWindowA把分配的内存释放掉。
如何为你的程序UNICODE化作准备
1。把你的文本字符串看作字符数组,而不是char数组或是字节数组
2。对于文本字符使用通用数据类型,如TCHAR和LPTSTR
3。对于字节、字节指针和数据缓冲区使用显示的数据格式,如BYTE和LPBYTE
4。对于字符和字符串使用_TEXT宏
5。进行全局替换,如把LPSTR替换成LPTSTR
6。修改字符串计算问题, 如把sizeof(pBuffer)改称sizeof(pBuffer)/sizeof(TCHAR).
哇哈哈,阿根廷的比赛已经开始了,破纪录般的半抄半写了这么多。。顶
января 19 拒绝沮丧不如意的时候容易否定自己,看不到希望.更可怕的是,这个气氛在蔓延。。。
我知道这样不好,可是沮丧再所难免,为之努力了许久的一个项目也在渐渐证明目前这个产品离成功还很遥远.
这中间可以追究的东西很多,很多.几乎所有方面都存在这样那样的问题,甚至给我带来了一些很不开心的事情,事实就是这样,你尽力了,可是别人或许并不知道或是并不认同.
其实team里的所有同事都一样,为之努力了这么久的东西,都希望它能够做成,做好。不管别人如何否定,我们要对自己有信心~zhangzhen说最大的对手是自己,我想是有道理的,我们需要一个强烈的信念去告诉自己,一切只会越来越好。
января 08 倒霉熊~送给大家开心一下三思而后code 自己负责的一块的代码的膨胀已经到了很难忍受的阶段,回想起来,如果code之前有足够的思考,那么情况就会好的多的,学习设计模式的想法越发强烈.... января 05 想新年开篇帖,在新浪今天的财经频道上看到这样的消息,呵呵无意中也算个好兆头吧
沪深股市5日大幅上扬 众热点开花大盘剑指千二希望这个好兆头能给自己冲冲喜。最近的状态一直不大好,想问题总觉的不全面,总会漏掉点东西,甚至连老婆大人交代的事情也给忘记了。如果一次是偶然的话,那么多次发生的话就要考虑一下是不是自己的某些习惯有问题了。态度和习惯非常重要~~~
偶打小有个习惯,看到周围有人进步了,就会有一点自责,希望自己能够好好努力,迎头赶上。这种感觉几乎消失了一年多的时候又重新出现了,希望这种感觉能给有些懈怠的我一些鞭策吧,想起了老爸的话,“如果你认为自己努力了,那么对所有结果你都可以问心无愧了”可是,现在的我分明知道,自己不太努力,I will try my best !
昨天把自己主动向老婆请缨的事情给忘的一干二净,给老婆的行程造成很大的不便,对此我很自责。想着身体本不好的老婆要一个人拖着那么大的箱子,下地道,上地道,过天桥。。。心疼的感觉一阵阵。。希望老婆路上一切顺利。。
декабря 31 辞别2005 2005年夜里接近11点,在深圳回家的一趟公交上,独坐一排,心情应该是忧郁的,尤其想念我可爱的老婆,可爱的父母.10月送别老婆之后,这样的公交车心情再次上演.
尝试去回想一下这一年,这一季,思绪万千却不知从何理起.呵呵,自己终究不是一个善于总结的人.
2005年,别了~
ps:许下2006年的几个愿望
(1) 老婆在深圳找到一份好工作,从此我和她能够照顾彼此,相依相伴
(2) 父母,丈母娘,泰山大人身体健康,
(3) 所有关心我的,和我关心的好朋友都能够万事顺利
(4) 自己的工作能够更上一台阶
哈哈,真是宏图大志啊~~顶~~
декабря 27 散 (一)老婆
才发现老婆大人不在身边的时候,自己的日子原来是这样的平淡,朝八晚九的生活,生活里最多的精彩全部源自老婆大人从远方一手营造,老婆知道我不是一个浪漫的人,可是她细致用心却足以让我明白——拥有这些牵挂的我——很幸福.下班回来的班车上, 一个平时不甚交谈的同事很惊讶的说道:“你怎么又有包裹?”呵呵,因为我的包裹总是会在我床头快断粮的时候准时出现。
"老婆,有你真好~"
(二)工作
当年听了cnzhangzhen一席话后,IT从偶的业余爱好彻底上升到了谋生手段的高度,从此精算师便从自己的视野里淡出。呵呵,偶想好了,万一又遇到什么互连网寒冬,俺就回去和他策划着到南大门口买水饺去。工作半年以来,除了对自己非科班出身几乎什么都要从头学起的郁闷之外,主要的担心还是觉得做技术未来可以走的路会越来越窄,而自己打小就不求甚解的性格也注定了要在技术上有所突破会有很多东西需要克服。不过这点目前也还没有什么太好的办法,那么也就只能先老老实实的多学点东西吧。。
(三) 圣诞
¥18888, 这个就是我的圣诞,哈哈。。。加班中度过。。。
декабря 12 我对MSN的space无语了 想睡前贴几张我和老婆大人的照片,结果无论如何总是提示我上传失败,好不容易传成了,再一看,跑出一个脚本错误的框.咱就跟进去调试了一把...无语...死在了一个我根本没有改动的地方...
我要贴图 ~~~!! декабря 11 锄草行动出师未捷。。。 我为自己是一个程序员却不知及时保存而羞耻。。。含着满满的思绪。。。很有节奏地码着键盘。。。忽然一个闪屏。。。文字全不见了。。。欲哭无泪 。。。
明天再来。。。
ноября 14 这地快荒了,不行,得除除草好久没写东西了,一来因为事情的确比较多,二来就是给之前立下的军令状给吓得(实在不敢把自己学的雕虫小技拿出来)咱老实人啊,哪敢说胡话不是。呵呵,不过还是常去看朋友们的space,大多和我一样,都长草了。
这几天写了些智能指针的东西,于是开始关注了下这方面的进展,业界将对可能成为C++新标准的两种智能指针方案(Boost vs. Loki)进行选择, 前者是由C++标准委员会库工作组发起的Boost 组织开发的,而后者由世界级的C++专家Andrei Alexandrescu 开发。
个人觉的智能指针的初衷是为了方便程序员进行资源管理,可是很大程度上违背了直觉感观,呵呵,很多时候觉得像多态这样的东西固然神奇,可是我有个坏毛病,直觉上一眼看不出来的东西,我都觉得是比较恶心的,多态在我看来就有违人类正常思维,(哈哈,我哪里像经过高度抽象的数学专业训练的人啊)而经过封装后的智能指针究竟是减轻了程序的工作量还是为程序员带来了不可预料的调试深渊呢?哈哈,这种高度抽象的东西,如果的离开技术的层面,当就实用的角度来看,它要作到相当的通用仍有不小的困难。
最后声明,以上纯属水货扯淡。。。哈哈。。 ноября 02 打算写一些技术方面的心得哈哈,冒着被鄙视的危险,被对门阿姨简单称做是搞电脑的我,终于产生了这个危险的念头...
这段时间学了不少东西,不过很杂,尝试得去做一些归纳未尝不是一件好事...呵呵,水人开始吹水咯。
先简单的列一下自己所写内容的方向,大致可以分为以下几个方面
1 C++一些体会(偶尔触及冰山一角,已是感触其博大精深了)
2 Windows多线程编程方法(正在看)
3 Windows界面编程(哈哈,只会些很基本的)
4 设计模式(计划研究中...)
先立此凭据...慢慢来。...
明天讲讲对于C++中的dynamic_cast的神奇感触,以及自己推测它的实现机制....
和你在一起,真好~_~本本回家了,又可以开始告诉朋友们我的生活了...
你试过推开自己的衣橱发现很久以来原来你的全部衣服已经由另外一个人替你挑选的感觉吗?各种得体的款式,合适的搭配...真的不敢想象如果没有你,或许我的生活会变成什么样子...望着那些全部都是你精心挑选的衣服...笑了,不仅因为想起了因为我的烂身材让你跑断腿才挑到一件合适的衣服的情景(呵呵,每每这个时候你开心之余也会笑话我的烂身材,于是我就装着很伤心的样子...)更是因为这就是我想要的--幸福感觉...~_~
有你真好~~~
октября 24 本本保修中,空间暂时交由老婆大人打理经过我辛勤的老婆大人装修,空间俨然已经告别小作坊模式,向专业化的方向大步流星的往前冲。感谢娘子ing。。。。<br>
<br>
无奈上周偶得compaq 自由人2811 经过一年零7个月的艰苦努力,终因体力不支硬盘停止工作,现保修中,故07152暂由我家娘子代为打理。。。。
<br>
<br>
特此通告。。。 октября 17 第99个夜晚明天是我的生日.在想她会不会给我个问候,忽然好害怕明天的到来... 想起了那个准备苦等公主100天而在第99天夜里放弃的卫兵...卫兵害怕失败...我呢?或许一样吧,因为她对我而言有着无以言喻的重要 可以说这是来到深圳以后最烦恼的一段日子,欲言又止,满腹心事,不喜言笑,如果一个人可以对你影响这么深?那么......忽然不知道会有什么那么...一切都是未知,越是努力,就越发现可以左右结果的貌似是你,却又貌似是另外一个你... 我不懂,我好烦..... октября 13 w期待周末生活不应该只是工作,国庆7天长假后迎来的是连续7天的上班,身心俱疲... 今天把DEMO交给产品经理看了以后,经过一番讨论后再次迎来了需求的修改.也就意味着我的一个早上又白忙乎了...不过这回的经验值有所增长,当你发现产品面对问题时没有详细考虑就给出的意见很多的时候,不妨主动给出你自己的意见,某种意义上可以将形势往有利于你工作的方向发展.常见句式如下: 我发现了##困难, 可能无法实现原有需求,造成这些困难主要有以下这些原因 1................... 2................... 我打算通过以下方式解决.... 1@@@@@@@ 2######## 你们看怎么样? 今天使用的效果不错.下次继续使用.呵呵.. 周末定了张SZ高交会的门票,貌似SZ这里所有的人都很重视高交会(全称高科技技术交流会),据说我们的老板也是在高交会上得到最困难时期的融资,几乎人人神往,于是抽个周末打算去看个究竟..顺便陶陶宝贝看看.等我到时的高交会报道吧.. октября 11 等待下班的时间互联网企业的特点。。需求变化快。。。
今天一个需求变更了3次。。。于是我的代码也就跟着来回折腾了3次。。。不过产品经理还算客气。
每天的这个时候大概是最没有效率的时候,对着维生的vc有些犯迷糊,等着公司晚点班车的到来。。
不过还好,现在有了一个可以经营自己空间的地方。
国庆里老婆过来陪了我很久,这段日子里习惯了回家的时候家里有盏灯为我亮着,那种感觉很踏实,等老婆回了学校以后,每天下班推开家门,多少有些落寞。。。
还有15分钟,关机,走人。。等车去咯。。
|
||||
|
|