2009年1月12日星期一

享受Code::Blocks编辑快感的几个关键

享受Code::Blocks编辑快感的几个关键 - Utensil的专栏 - CSDNBlog
说明:

1)以下需要设置的地方均在Settings->Editor...弹出的对话框中。

2)不少命令都可针对当前行或选中的代码块,下文简称当前行或选中块。

==日常编辑==

• 按住Ctrl滚滚轮,代码的字体会随你心意变大变小,对保护视力特别有好处。
• 在编辑区按住右键可拖动代码,省去拉(尤其是横向)滚动条之麻烦;相关设置:Mouse Drag Scrolling。
• Ctrl+D可复制当前行或选中块。
• Ctrl+Shift+C注释掉当前行或选中块,Ctrl+Shift+X则解除注释。
• Tab缩进当前行或选中块,Shift+Tab减少缩进。
• 可拖动选中块使其移动到新位置,按住Ctrl则为复制到新位置。
• 按下Atl,再拖动鼠标,可以实现部分选择(即只选中一个区域内的字符,而不会包含它们所在行的其他字符)。
• 需要更大编辑空间时,F2和Shift+F2分别可以显隐下方Logs & others栏和左方的Management栏。

==自动完成与缩写==

1)优化代码自动完成功能:在Code-completion and symbol browser中,
• 将Automatically launch when typed # letter中的4改成2,这样打两个字母就会有提示了。
• 将Keyword sets to additionally include中1到9都勾上(可在Syntax highlighting 的keywords...中设置,其中1是C++关键字,3是Doxygen关键字;我曾将wxWidgets的类名都加入7并设置相应的字体(粗黑体),看代码时特别爽)
• 将Delay for auto-kick-in when typing [.::->]拉到 200ms,这样快点出来提示
• 选中Case-sensitive match,防止一些无关的东西干扰,如果你想它帮你纠正大小写,那就去掉勾
• 在Keyboard short-cuts中将Edit->Code complete的快捷键由Ctrl+Space改为Alt+/,因为前者与中文输入法切换冲突,该快捷键为已经输入的(不是正在输入的)词提供自动完成。

2)看Abbreviation一栏,里面定义了许多缩写(还可以自定义),只要输入这些缩写,并按Ctrl+J,就可以自动完成常用的代码框架,并将光标放在恰当的地方(自定义时用|表达)。常用的有:guard、class、switch等。

3)如果你声明了一个类,你可以在cpp文件中右击,Insert->All class methods without implementation...来插入你还没定义的方法的定义(省去不少打字的功夫哦),也可使用Insert->Class Method declaration/implementation...来插入一个方法的声明或定义。

==导航相关==

• Ctrl+G 到达指定行,ALT+G 到达指定文件,Ctrl+Alt+G 到达指定函数(支持头文件中的函数定义),F11 切换源文件与头文件。
• Ctrl+PageUp 到达上一个函数,Ctrl+PageDown 到达下一个函数。
• Ctrl+B 添加书签,Alt+PageUp和Alt+PageDown可以切换书签。
• Ctrl+Shift+B可找到匹配的括号。
• 看长代码时,可右击,Folding->Fold All,然后慢慢展开来看,也可充分利用左方Management栏的Symbol浏览器。
• 在一个变量、函数或宏上右击,三个以Find开头的菜单项,分别可以为你转到它的声明、定义和找到所有出现的地方(按F2在下方Thread Search那里查看)。
其他:
• General Settings中可以设置缩进、自动换行等细节。
• 让Code::Blocks永远记住你的Layout,尤其是debug的layout,善用debug工具栏。
• 备份C:\Documents and Settings\[你的用户名]\Application Data\codeblocks\Default.conf,如遇重装,将其放在codeblocks.exe所在目录,就不会丢失你的配置;这样也可以 打造出Code::Blocks的绿色版。



Ctrl+L 剪切选中行


F11 切换源文件与头文件


F10 全屏


Ctrl+Shift+B 括号匹配


按下ATL,再拖动鼠标,可以实现部分选择


Ctrl+B 添加书签,ALT+PageUp和PageDown可以切换书签。


Ctrl+G 到达指定行


ALT+G 到达指定文件


Ctrl+Alt+G 到达指定函数(支持头文件中的函数定义)


Ctrl+PageUp 到达上一个函数


Ctrl+PageDown 到达下一个函数

2009年1月8日星期四

使用Code::Blocks编译VC程序(一) 转来的

  
             
为什么舍近取远?既然已有VC,为何还要使用Code::Blocks?最近微软的收网行动是一个契机,长久以来,开始慢慢觉得使用盗版让人不舒服.于
是,慢慢的,rar,zip换成了好用的开源软件7zip(大推荐),word换成了open office,adobe
reader换成了foxit(大推荐),  ie也换成了Chrome,尽管ie是免费的,对了,什么时候换linux? 我不知道......
        说了许多废话,正题进入.
  
   
 盗版VS用了好多年,我再次感谢比尔盖兹.VS的好处多多,除了爹娘的照顾,和丰富的插件,可靠的编译(麻辣隔壁,同样的程序我用minGW-gcc就
是崩溃,水土不服啊),梦幻般的智能提示.都是他的杀手锏,可是越来越慢的启动速度,常常的假死,和超级的个头,然我说不.
         于是Code::Blocks登场,下面1000字的介绍Code::Blocks的优点的话,请google.我只说一句:Code::Blocks免费开源,启动速度快,块头小,功能多.缺点是,智能化做的不够.配置复杂(其实是优点),完.
         如何用Code::Blocks来编译VC程序?
  
      1.安装Windows SDK,你如果是native C++开发,只需要下载Platform
SDK,大约600mb.如果你希望.net,即俗称的CLR,托管代码编程,则需要大约1000mb.
所有的安装程序请去:msdn-->developer center
         2.安装Code::Blocks.
         3.配置Code::Blocks.屁话少说,上图:

         这个菜单是Settings--Compiler and Debugger
         我安装了VS9(有点耍赖:),读者可以只安装SDK,里面有编译器,他的位置一般在诸如:"C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin",可能有些许不同,但大致差不多.
见下图,设置编译器(rc.exe,link.exe,rc.exe)所在的文件夹

         然后设置头文件的系统文件夹,比如windows.h这类头文件的位置,请看下图:

            狗日的yupoo,给我加了一条水印,不过我还是要谢谢他的图床,狗日的,谢谢.(其实狗是很忠诚的动物,大家不要吃狗肉,谢谢.广告时间结束)
             我们看到上图就是详细的设置,不用我多说了.如果你只安装了sdk,那么你的路径只有第一行.你不用担心只安装SDK会少东西,一点不少.VS把sdk的一部分文件装到了自己兜里,才造成这种情况.
  
         
我们知道除了头文件,还有链接obj文件是需要的系统库文件,比如需要我们的程序中调用::MessageBoxW这个函数,我记得是
user32.dll中的,于是我们就需要链接user32.lib.说道这里你已经知道了,我们还需要设置常用链接库.见下图:

             你看到我还设置了什么ole32.lib,gdi32.lib纯属个人喜好,你不需要用到那些库中的函数就不要链接这些库.接下来,还要设置这些库文件所在路径,见下图:)

              和头文件路径设置很相似,如果你只安装了sdk,那么你的路径只有第一行.你不用担心只安装SDK会少东西,一点不少.VS把sdk的一部分文件装到了自己兜里,才造成这种情况.
  
           请注意上图Compiler, Linker, Resource
compiler这3个Tab标签,我们已经设置了前两个,最后一个是设置在rc.exe编译你的资源文件(resource.rc)时,所使用的头文件
的位置,基本上rc文件的头一行就是:#include "resource.h" 而resource.h的头一行是:#include
<windows.h>
所以一般设置的路径和设置系统头文件的路径是一致的,比如:"C:\Program
Files\Microsoft
SDKs\Windows\v6.0A\include".说句题外话,著名按钮ID比如IDOK,IDCANCEL都是在以windows.h为首的头
文件中被定义的.
              贴了那么多,我们基本上告一段落.
              你已经可以创建一个Windows GUI程序,然后成功编译了.
              具体的说就是:File-->New-->Project  
              然后选择:Win32 GUI Project,
              下面就是和VS类似了,我就不罗嗦了.
   
         
说到这里,一定有人疑惑,有的工程需要gdi32.lib,有的工程需要gdi32plus.lib,难道每次我都要这么麻烦的修改吗?当然不需要,前面
说的都是总体的设置.比如大部分win32程序都需要gdi32,kernel32这两个库,你可以吧这两个库加入默认链接选项,以后每一个工程都会自动
连接这两个库.但是如何仅仅配置某一个特定工程?这里不就不贴图了.
左侧的Management栏,选择Project的Tab,然后右键YourProjectName,菜单选择Properties,然后在弹出的窗口
中点击Project's build option,接下来的东西,你会很熟悉,只是记住它只对你的当前Project起作用.
              最后说一句,这是(一),你注意到了吗,所以还有(二).为什么?因为我从来就是用makefile编译的,程序员的本性就是:control everything.
               敬请期待(二)...........
  
           
你要用MFC?我恨mfc,虽然俺也是从mfc起步的,可是我觉得如果从win32开始,我会明白的更多.mfc瞬间让我在高楼,可是为了爬得更高,我不
得不先爬到底楼,再重新爬起来.MFC只适用于一种专业人士,他所做的只是核心算法,可能跨平台,所以他根本不需要在乎什么windows!

好冷,不爽,下班了




-- 发送自=ZZ=View* iPhone

2009年1月6日星期二

广东出现高仿真百元假钞 部分验钞机无法识别

广东出现高仿真百元假钞 部分验钞机无法识别


http://www.sina.com.cn  2009年01月07日08:10  南方日报







广东出现高仿真百元假钞部分验钞机无法识别
  网上有人公开售卖伪钞,并在博客上附有具体的价目表及联系方式等。记者手中的两张百元假钞,是记者本人近期不慎收到的,编号也是以HB90开头。苏仕日摄


   本报讯(记者/陈志强实习生/冷运军通讯员/凌有福)  做生意收到假钱是很平常的事,可一次收到15张编号相同的百元大钞则较为少见。近日,凤岗网网友张先生开的便利店就遇到了这样的倒霉事。

  当事人张先生自述,1月1日晚10时许,他经营的一家便利店店员接到一个手机打来的订货电话。电话中的男子自称是附近一家宾馆的管理人
员,需要向该店购买价值1500多元的物品。当店员将货送到该男子所说的宾馆时,该男子又来电要求店员到宾馆外面交货。最后,店员在宾馆附近一个路口与该
男子完成交易,该男子从钱包里拿出15张新版百元钞票付清货款,然后该男子转身离开。


  由于当时光线不足,店员接钱时并未发现钞票有何不妥。当他回到店内在灯光下仔细看时,才发现15张百元大钞全是假币。店员立马跑去宾馆查找订货男子,但宾馆答复说没有人叫货,订货男子的手机也一直关机。


  1月6日下午,记者在张先生处看到了这15张编号同为“HD90268566”的假钞。这些百元大钞摸上去手感与真钞极为相似,不论从水印像还是颜色上看,仿真度都十分高,仅靠肉眼较难辨认。


  凤岗公安分局民警提醒市民,如果遇到无法辨别真伪的钞票,可按规定到各大银行营业网点进行鉴别。一旦发现假币,一定要及时拨打110报警。


  记者调查


  高仿真伪钞疑流入东莞


  HD90编号的百元钞票是高仿真假币?近来,网络上就这个问题讨论得沸沸扬扬,有人提醒要小心提防,有人在博客中公开卖假钞。对于这种假币已经流入珠三角的疑问,本地多家银行皆表示未接到报诉,但去年重庆曾发出通知,要求银行对柜台和ATM点钞机进行升级。


  多起读者报料


  连日来,本报接到多个报料电话,称在出租车或夜市上收到过100元假币,这些假币的编号无一例外都以HD90和HB90开头。一些QQ群和网站
上也传播着一个“紧急提醒”,称编号为HD90开头的仿真度极高的百元假币已流入广东。有人声称,以HD90为编号开头的一定是假币。


  读者刘先生说,他的朋友在出租车上拿100元付车费,司机接过钱后推说没有零钱,朋友又从身上翻出零钱,司机归还百元钞票。下车后,刘先生的朋友才发现手里拿的不是原来的钱,而是一张HB90开头的假币。


  在东城一市场卖菜的张阿姨近日也让人糊弄了一张HD90开头的百元假币。张阿姨说,傍晚菜市场灯光不亮,当时感觉钞票的防伪线和质感很真实就收下了。


  博客公开卖伪钞


  昨日,记者在一个“专业假币”的博客上看到,该博客2008年5月25日和26日发布的两篇文章,对5元至100元面值的假币明码标价售卖。编
号为HD90和HB90开头的100元假币售价为18元/张,编号为FA17的50元假币售价为12元/张,编号为FA7667和FC3358的20元假
币售价为7元/张……


  记者拨打了该博客留下的手机,对方自称“健哥”,说这批仿真度极高的“货”是从台湾运来的,目前存放在浙江。对方还说,HB90质感比较差,水
印也不明显,HD90的质量则要高出一截。“健哥”自称信誉很好,“货源”充足,随便提几十万面值的“货”都没有问题。他建议记者先买100张假币试试,
每张百元假币售价可降至15元。他说,只要先往他的账号汇钱,保证第二天能收到“货”。


  在该博客的相册栏,贴着几张成沓的10元、20元“人民币”图片。博客的匿名留言非常暴露和大胆。有名网友称其要先买几百张假币试试,只要“健
哥”守信,以后最少要上万元的“货”而且会帮忙介绍买主。有留言说,收到“货”了,质量不错,特别是10元的,消费没问题。有的留言相互交流心得,一位网
友称其给广东卖主汇了500元,却没有收到“货”,并抖出几名福建的卖主在“黑吃黑”。


  伪钞来自台湾?


  据东南卫视等多家媒体报道,去年10月8日,一个活跃于两岸三地的假人民币集团在台湾被捣破,6名台湾人落网,警方检获假人民币多达1亿元。警
方透露,这批假币在验钞机里验不出“真身”。有消息称,该伪钞工场已运作一段时间,有大批假钞利用海路走私到大陆,不排除部分假钞已通过珠三角假钞团伙流
入香港。


  东南卫视的新闻画片显示,一沓沓假币顺利地从点钞机流过。


  据悉,台湾警方称该批假人民币除出售给台湾不法分子之外,更以渔船走私至内地贩卖,当中大部分假币落入广东假币团伙手上,当中部分假币相信已流向港澳。


  另据媒体报道,台湾高仿真度假币技术“冠绝全球”。去年8月20日,台北警方曾查获台湾历史上最精密的伪造美钞工厂,起出伪钞成品、半成品及百元伪美钞套色网版,其造假技术令美国也为之震惊。


  外埠已升级点钞机


  去年10月,中国人民银行重庆营业管理部办公室曾以书面形式向重庆市各银行发出“关于做好新版人民币防范工作的通知”。该通知称,“近期,我市
金融机构发现冠字号码‘HD9026’开头的2005年版面值为100元券的新版人民币。此版制作精细,伪造手段较以往有很大改进,目前发现部分点(验)
钞机无法识别或不能准确识别此版。”


  该通知还称,“如发现点(验)钞机无法识别该版,各单位应立即与厂家联系,及时对产品和设备进行维护升级。如发现自动存款设备无法识别该种,应立即对自动存款设备钞箱内钞票进行全面排查,防止误收误付。”


  昨日,记者向该办公室有关负责人求证确有此通知,但是否所有HD90开头的钞票都是假币还有待进一步查证。至于在重庆发现的HD90开头的假币
是否由珠三角或台湾流入,该负责人表示不便透露。该公办室另一负责人告诉记者,通知发下去后,重庆市各银行对点(验)钞机进行了升级。


  本地银行尚无投拆


  昨日,记者就HB90、HD90百元假币采访了东莞市多家银行,均被告知不清楚有此事。东莞银行办公室负责人称,该行未接到HD90假币投拆。


  东莞市金融办综合科负责人告诉记者,货币流通属央行全权管理。就此,记者致电中国人民银行东莞中心支行,该行负责人称,该行从来没有听说过这方面的消息,上级有关科室也没有就此下发相关文件或通知。


  这位负责人同时表示,不要轻信网络上的传言。由于没有实际的案例,中国人民银行也无法求证网络传言的正确性。


  对于有人可能出售该编号的百元假币的消息,该负责人说:“会通知相关部门关注这一事件,必要时进行调查。”

2009年1月4日星期日

万年历真的“万年”么?_dzter的BLOG_新浪博客

万年历真的“万年”么? (2009-01-04 14:06:26)


忘记什么时候开始,网上流传了一段万年历的代码。看起来不错,于是被无数人或者公司做成产品放到网络上。我也是其中一个,稍适修改便放上了 http://wnl.owse.cn

一直用的挺爽,昨天闲得没事,在那扯春天的故事,说到农历2009年有两个春天:一个在公历2009年2月3日,一个在公历2010年2月4日。马上遭到反对说:应该是公历2009年2月4日。查了表,果然是4号,而非3号。这么说http://wnl.owse.cn的程序计算有偏差了。至少是50分钟的误差。(因为立春时间为4号零点49分48秒)。

今天仔细看了看代码,发现误差出现的原因:

1、程序使用了 0,21208,42467,63836,85337,107014,128867,150921,173149,195551,218072,240693,263343,285989,308563,331033,353350,375494,397447,419210,440795,462224,483532,504758

来辨别从冬至开始的节气排列,单位为分。这是罪魁祸首,很不负责任的算法。



2、一般说太阳年应该平均为31556925999.9936毫秒,程序使用的31556925974.7毫秒。



很糊弄的解决方法是:

1、修改历年为2000年

2、修改节气间隔时间



负责任的解决方法

1、写个完整的节气计算,计算条件比较复杂,可能有上百项。

2、搞不定程序就下个千年内的节气数据库吧。



此次中招的有

百度:http://site.baidu.com/list/wannianli.htm

网易:http://mimg.126.com/assist/calendar/index.htm



据朋友说无数挂历台历同样有此错误。

看来今年N多挂历要当废纸卖了。



唉,程序员也是走了文人的道路,天下一大抄!